mds_stores和mdworker
又称:mds,“聚焦”索引
简要回答
mds、mds_stores和mdworker是构建和维护“聚焦”搜索索引的macOS进程。mds是元数据服务器,mdworker进程负责扫描文件、读取内容和元数据,让它们能被搜到。
“聚焦”会为你的文件、App、邮件和其他数据保留一份本地索引,让搜索很快出结果。添加或更改了文件,或者连接了磁盘时,mdworker会读取它们,mds和mds_stores则更新索引。
在macOS更新后、迁移到新Mac后、从备份恢复后,或拷入大量文件时,索引繁重是正常的。索引更新完毕后就会平静下来。
mds_stores为什么占用这么多CPU
索引占用的CPU和磁盘活动与需要索引的量成正比。为整个装满的磁盘重新建索引可能要花一段时间。不断变化的文件夹,例如构建输出、大型缓存或虚拟机映像,只要还在变,就会让“聚焦”一直忙下去。
同时有好几个mdworker进程是正常的。“聚焦”会运行多个进程来并行扫描文件。
如何让“聚焦”不索引某个文件夹
打开“系统设置”,前往“聚焦”(部分版本为“Siri与聚焦”),点按“搜索隐私”,然后添加该磁盘或文件夹。“聚焦”就会停止索引它,也不再在搜索结果中显示它。
适合排除的是那些你从不搜索、又经常变化的文件夹,比如构建目录、软件包缓存,或存放虚拟机的文件夹。
什么时候该重建索引
如果索引似乎永远做不完,或者搜索结果不对,Apple建议重建索引:把该磁盘或文件夹添加到“搜索隐私”列表中,等几秒钟,再把它移除。“聚焦”会重新索引这个位置,mds_stores会因此忙上一阵。
如何查看“聚焦”是否正在索引
活动监视器会显示相关进程,“终端”则能告诉你某个磁盘是否打开了索引。
- 在活动监视器中,点按“CPU”标签页,然后在搜索栏中输入
md。你会看到mds、mds_stores,以及一个或多个mdworker或mdworker_shared进程。 - 观察它们的“% CPU”一分钟。很低或为零,说明“聚焦”处于闲置状态。持续有活动,说明它还在处理文件。
- 点按“磁盘”标签页,看同样这些进程的“读取字节”列。索引会读取大量数据,所以这个数字不断增长,就说明扫描还在进行。
- 在“终端”中运行
mdutil -s /,查看启动磁盘的索引状态。如果“聚焦”设置为索引该磁盘,它会显示Indexing enabled.。要查看其他磁盘,把/换成它的路径,例如/Volumes/Backup。
“聚焦”索引要花多长时间?
这取决于有多少文件需要索引、磁盘有多快,以及Mac同时在忙多少别的事。为一个大磁盘建立完整索引,比补上几个改动过的文件要久得多;同一台Mac可能某天很快就完成了,而在大量拷贝或macOS更新之后却要好几个小时。
更值得问的是它有没有在推进。如果mds_stores和mdworker在几小时内逐渐安静下来,说明快完成了。如果它们日复一日都很忙,要么是有东西在不停更改文件,要么是索引需要重建。
索引一直完不成的常见原因
如果在更新或迁移之后很久,“聚焦”仍然很忙,就去找一个不断变化的位置。
- 经常被重写的构建输出、
node_modules或软件包缓存。 - 使用中会不断变化的虚拟机磁盘映像或大型数据库。
- 另一个App不停写入的文件夹,例如下载文件夹或同步文件夹。
- 经常连接又断开的外置驱动器,每次装载时“聚焦”都会检查它。
- 索引已损坏,这时通过“搜索隐私”重建索引会有帮助。
不要做的事
不要为了省CPU而为整个启动磁盘关闭“聚焦”。其他功能也依赖这个索引,包括在访达、“邮件”和其他App中搜索。只排除你不需要搜索的文件夹。
退出mdworker或mds_stores并不能停止索引,因为macOS会重新启动它们,而它们会从中断的地方继续。如果你打开了Vitals的可选帮助程序,它按进程保存的30天历史记录能让你轻松看出,索引是在逐渐收尾,还是每天都会卷土重来。
常见问题
Mac上的mds_stores是什么?
它是维护“聚焦”搜索索引的进程之一,属于macOS的一部分。
mdworker为什么一直在运行?
mdworker为“聚焦”扫描新增和更改过的文件。在更新、迁移之后,或大量文件发生变化时,它会运行得很频繁,等索引跟上后就会安静下来。
退出mds_stores安全吗?
退出它帮助不大,因为macOS会重新启动它,索引也会继续。要让某个位置不被索引,请在“聚焦”设置中把它添加到“搜索隐私”。
mdworker_shared是什么?
它是较新版本macOS中“聚焦”工作进程的名称。和mdworker一样,它会扫描文件,并把发现的内容交给mds编入索引。
如何知道“聚焦”索引已经完成?
在活动监视器中,mds_stores和mdworker进程的CPU占用降到很低或为零,并保持不变。它们在“磁盘”标签页中的“读取字节”也不再增长。
“聚焦”会索引外置驱动器吗?
会,只要连接着就会,除非你把它们添加到“搜索隐私”中。运行mdutil -s /Volumes/DriveName可以查看某个驱动器的索引状态。
相关条目
分步指南:Mac为什么这么卡。
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。