macOS Spotlight 索引优化
判断与结论
现象
电脑体感卡顿(风扇狂转、操作延迟),但 Activity Monitor 里 CPU 和内存占用看起来都不高。
排查过程
- 先看整体指标:
uptime显示 load average 32(正常应个位数),sysctl vm.swapusage显示 swap 用了 6.3GB/7GB 几乎满了。但 CPU idle 60%+ ——说明瓶颈不在计算,而在 IO。 - 定位 IO 来源:
top -l 1 -o pageins按换页次数排序,发现 mds_stores(Spotlight 索引)和 syspolicyd(Gatekeeper 验签)的 pageins 数远超其他进程,是 swap 风暴的主要制造者。 - 验证:排除相关目录后,load average 从 32 降到 4,风扇立刻安静。
结论
Spotlight 的 mds_stores 会无差别扫描所有目录(包括 . 开头的隐藏目录),遇到文件多或变动频繁的目录时会持续索引,挤占内存引发 swap 风暴。典型触发场景:
- 文件数量大:包管理缓存(node_modules、.git objects、site-packages)、AI 工具缓存
- 文件变动频繁:iCloud 同步目录、构建产物目录
- 内容对搜索无价值:二进制文件、编译产物
排除方式两种:
- System Settings → Siri & Spotlight → Spotlight Privacy 里添加目录
- 目录下放一个
.metadata_never_index空文件(但 iCloud Drive 下可能不可靠,建议用方式 1)
参考依据
- 排查路径:
top -l 1 -o pageins可以按换页次数排序进程,定位到 mds_stores / syspolicyd 是罪魁祸首 - 排除后 load average 从 32 降到 4,风扇立刻安静,效果立竿见影