Mac 因 mds资源占用过高,导致频繁死机

最近 macOS 开机使用不久后会自动死机,然后关机,最后发现是 mds 进程导致系统崩溃

Mac 配置: OS: macOS Catalina 10.15.7 (19H2) 型号:MacBook Pro (Retina, 15-inch, Mid 2014) 处理器:2.2 GHz 四核Intel Core i7

开机后不久,风扇狂转,温度升高,然后死机,关机。

1. 使用 “Apple 诊断”测试 Mac

先看看硬件层面是否有问题。

使用“Apple 诊断”测试 Mac。

这款 Mac 的处理器是 Intel ,开启 Mac,然后在 Mac 启动时立即按住键盘上的 D 键。

检测后,未发现 Mac有硬件问题。

2. 查看 Mac 系统日志

然后,看看系统层面是否有问题。

启动台 中找到 控制台,控制台左侧可以看到 system.log,发现有进程被 KILL。

com.apple.xpc.launchd[1] (com.apple.mdworker.shared.01000000-0300-0000-0000-000000000000[5605]): Service exited due to SIGKILL | sent by mds[151]
1

3. 查看系统资源占用

查看 活动监视器,发现 mdsmds_stores 占用 CPU 使用率很高,查看资料知道,这个是 聚焦(spotlight)在创建索引,便于通过它快速搜索文件、配置等信息。

不知道是不是当前这个操作系统版本存在bug,CPU 使用率太高了,导致系统死机。

这么看来,估计是 聚焦 在创建索引的时候占用大量资源,导致系统死机。

那要临时解决这个问题,就要停止这个进程,取舍一下,放弃聚焦功能,确保系统能用。 至于什么版本修复了这个 bug,后面再看看。

4. 禁用 mds

$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
Password:
/System/Library/LaunchDaemons/com.apple.metadata.mds.plist: Operation now in progress
1
2
3

如果有报错(Operation not permitted while System Integrity Protection is engaged),请先 禁用 Mac OS X 的系统完整性保护(SIP)

重启操作系统后,系统死机的概率大大降低,之前是一天几次,现在是几个星期偶尔能遇上一次。

reference