Levo 指南 · 这是什么进程?

Mac 上 kernel_task 占用 CPU 过高

kernel_task 就是 macOS 本身,你无法退出它。那里 CPU 很高,通常是 Mac 为了降温而压住其他工作,或者是硬件上有大量流量。要解决的是发热或设备,而不是这个进程。

Levo 的 Processes 列表中 WindowServer 和 kernel_task 显示为灰色且没有退出按钮,因为 macOS 需要它们

kernel_task 是什么

它就是内核:负责内存管理、驱动程序、USB 和雷雳、电源和温度控制。Mac 上的一切都要和它打交道,所以它总会出现在活动监视器里,而且常常排在 CPU 列的前面。

在 Intel Mac 上,它还多一项工作。当芯片过热时,kernel_task 会有意占用 CPU 时间,让其他 App 得到的更少,机器就能降温。kernel_task 占到 300% 到 500%,而其他一切都很迟钝,就是这种情况。Apple 芯片的 Mac 运行温度更低,降频也更不明显,所以你很少看到它,但同样的原因仍然可能把它推高。

为什么会飙升

原因你会注意到什么有帮助
发热:房间太热、出风口被堵、放在软的表面上风扇很吵,Mac 发烫,一切都很慢放在坚硬平整的表面上,保持出风口畅通,换个凉快的房间
失控的 App 或构建某个 App 的 CPU 很高,kernel_task 也跟着升高退出正在拼命工作的那个 App
有故障的或廉价的 USB-C 集线器、扩展坞或线缆插上时飙升,拔掉就没了拔掉它,换一个试试
驱动程序、内核扩展或 VPN 网络扩展从启动起就很高,没有明显的 App更新或移除那个软件
持续的磁盘或网络流量kernel_task 很高,而 CPU 其他方面很平静找出是什么在读写

如何自己排查

  1. 打开活动监视器,点击 CPU 标签页,按 % CPU 排序。记下最上面的三个进程,以及风扇是否在转。
  2. 正常退出最上面的那个 App。如果 kernel_task 在一分钟内降下来,说明它当时是在跟随那个 App 产生的热量。
  3. 拔掉所有外接设备:集线器、扩展坞、显示器、硬盘。观察 kernel_task 一分钟,然后逐个接回去。一根坏线缆就可能让它连续几个小时保持在 200%。
  4. 检查 macOS 是否在限制芯片性能。如果是,下面的命令会输出温度警告:
    pmset -g thermlog
  5. 如果工作很轻但 Mac 发热,在系统设置 › 电池中打开低电量模式。它会在发热之前先限制时钟频率。
  6. 重启一次。重启清除卡住的温控或驱动状态的次数,比你想象的要多。
  7. 在 Intel Mac 上,如果做完这些仍然不对,就重置 SMC。Apple 的步骤取决于这台 Mac 是否有 T2 芯片。

不要试图杀掉 kernel_task。macOS 不允许,就算允许了,Mac 也没有东西可以运行了。

怎样算正常

在大型构建或文件复制期间,kernel_task 占到 20% 到 40% 是正常的:它是在替那些 App 干活。问题在于 Mac 又慢又烫,而且没开任何高负载内容,这个数字却一直很高。把它当作一种症状。它在告诉你别的地方出了问题,原因几乎总是另一个 App、房间环境或一根线缆。

如果只在合盖并外接显示器时出现,或者从某个特定端口充电时出现,问题就出在线缆或扩展坞上,而不是 Mac。

该退出它吗?

你退不了。退出让它忙起来的那些东西。

针对 kernel_task 的终端检查

两条命令能告诉你是发热还是别的原因。第一条列出一次占用 CPU 最多的进程,让你看到 kernel_task 在和什么竞争。第二条打印 macOS 的温度和速度限制状态。如果显示 CPU 速度限制低于 100,说明 Mac 正在有意降频。

top -o cpu -l 1 -n 8 -stats pid,command,cpu
pmset -g therm

如果限制值是 100 而 kernel_task 仍然很高,就怀疑某个设备:拔掉扩展坞,用 ioreg -p IOUSB 查看接了什么。一个反复重新连接的集线器,会在那里表现为一个不断出现的设备。在 Intel Mac 上,也值得在安静的房间里观察一下风扇曲线:Mac 很烫,风扇却一直不转,说明传感器或 SMC 有问题,需要维修或重置 SMC。

Levo 怎么做

Levo 绝不会退出 kernel_task、WindowServer、访达或程序坞这类系统进程,所以它不会提议停止这一个。

Levo 能显示的是:是什么在把它推高。同一个列表按 CPU 和 GPU 给你的 App 排名,你的智能体会标出那些闲置但仍在工作的:没人用的开发服务器、卡住的构建、浏览器标签页。你把它们退出,热量通常也就随之消失。在 Settings › Memory, CPU and GPU 中设置的 CPU 提醒,加上必须持续的时间,会在这种情况发生时通知你,所以短暂的峰值不会打扰你。

具体步骤见退出闲置进程,释放内存、CPU 和 GPU。两次免费清理,之后是终身许可证。

常见问题

可以强制退出 kernel_task 吗?

不可以。它是内核,macOS 不允许。退出让 Mac 发热的 App,或者拔掉触发它的设备。

为什么 kernel_task 占用 500% 的 CPU?

在过热的 Mac 上,它是有意占用 CPU 时间,让其他 App 用不上。给 Mac 降温或停止那个重负载 App,它就会降下来。

kernel_task 是病毒吗?

不是,它是 macOS 的一部分。恶意软件不会替换内核,所以数字很高并不表示你被感染了。

重装 macOS 能修好 kernel_task 吗?

几乎不能。在采取任何极端措施之前,先试试集线器、线缆和显示器,再试重启。

kernel_task 会自己降下来吗?

会,一旦 Mac 降温或者让它发热的负载停止。它通常会在一两分钟内降下来。

保护壳或把 Mac 放在腿上会让 kernel_task 更糟吗?

会。柔软的表面和保护壳会堵住出风口,让 Mac 变热,而这正是触发它的原因。