如何修复 Mac 的“kernel_task”高 CPU 使用率错误

929 阅读8分钟

从 Mac 上的“kernel_task”进程中看到高 CPU 使用率?了解如何解决此问题。

image.png

当计算机开始运行缓慢时。如果已经关闭了所有可以关闭的程序,并且 Mac 上的所有内容仍然感觉特别卡,这很有可能是kernel_task导致 CPU 使用率高的迹象。

在 Mac 上,kernel_task 是各种低级函数的名称,这些函数允许计算机的其余部分工作。这意味着找出罪魁祸首可能很困难。

我们已经看到很多这种情况,所以我们有一些技巧可以帮助您摆脱这个问题。

诊断慢速 Mac

如果您的 Mac 看起来运行缓慢、热得发烫,或者由于风扇速度高而听起来它即将起飞,那么需要打开活动监视器并找出原因。这本质上相当于 macOS 的 Windows 任务管理器。

您可以使用 Spotlight 打开活动监视器:只需点击Cmd + Space,然后开始输入“活动”,它就会弹出。您还可以在Applications > Utilities下找到它,并且您可能希望将其固定到 Dock,以便在遇到重大问题时更快地访问。

计算机运行缓慢的原因应该可以从CPU选项卡中看出。只需单击% CPU列标题即可按处理器使用情况组织正在运行的进程。任何使用大量处理能力的东西都会出现在顶部;这些将随着您的计算机在后台执行各种任务而移动。

高 CPU 使用率通常只是在您没有预料到的情况下才会出现的问题。如果您正在运行游戏、在浏览器中观看视频或编辑视频,那么期望您的机器消耗资源是合理的。如果单个 Safari 选项卡或 Mac 进程的使用量超过其公平份额,则通常意味着出现问题。

为什么 kernel_task 是罪魁祸首?

您可以通过单击大多数进程来终止它们,然后单击屏幕左上角的X。不幸的是,您不能为一个特定进程执行此操作:kernel_task。这样做的原因是 kernel_task 实际上是 macOS 的一部分。

这与其说是一个单一的过程,不如说是一个标签下的一系列过程。在您工作时,macOS 会在后台执行各种任务。这些包括通过网络发送和接收数据、将数据写入和读取到磁盘,以及为 Spotlight 搜索索引新文件夹或磁盘。

此过程通常会使用“内存”选项卡上的大量可用 RAM 。虽然使用中的 RAM 量将根据需要上升和下降,但是高 CPU 使用率会使您的整个系统陷入停顿,甚至会导致系统崩溃。

那么,如何阻止 kernel_task 对 Mac 的性能产生负面影响?

kernel_task 问题的简单解决方案

在许多情况下,只需重新启动 Mac 即可立即解决问题。但是,如果遇到此问题已有一段时间,这不是永久性的长期解决方案。这只是一个短期的解决方案,应该会提供立竿见影的效果。

任何导致 CPU 使用率大幅飙升的原因都可能回归。因此,如果您遇到重复事件,您可能也想尝试重置系统管理控制器 (SMC)。这很容易做到,并且可以解决各种 macOS 问题。

根据您使用的 Mac 型号,重置 SMC 的说明略有不同。因为它可以解决很多问题,所以我们有一个完整的指南,详细说明如何重置 Mac 的 SMC。它还包括重置您的 PRAM,这是 Mac 的另一个可能导致多个问题的部分。

其他解决 kernel_task 高 CPU 使用率的解决方案

对于任何与操作系统相关的问题,最明显的修复方法可能是更新到最新版本的 macOS。只需启动System Preferences,单击Software Update,然后运行任何未完成的 Apple 软件更新。

kernel_task 进程高 CPU 使用率的另一个常见原因是 Adob​e Flash。Flash 对浏览网络至关重要的日子已经一去不复返了,但您可能仍然需要它来访问特定的网络应用程序或网站。

可以使用 Google Chrome 之类的浏览器,而不是一直安装 Flash,它提供 Flash(尽管是可选的)。很可能,您根本不需要 Flash,因此可以安全删除。此外,由于 Adob​​e 自 2020 年 12 月 31 日起不再支持 Flash,因此您将无法获得重要的安全更新。

删除它至关重要 - 至少出于安全原因。要删除 Flash,请运行Adobe Flash Player 安装管理器并单击卸载。

深入了解 Mac 的高 kernel_task CPU 使用率

一些人在删除内核扩展方面取得了成功,内核扩展是能够执行低级任务的代码模块。也称为“kexts”,这些扩展中的绝大多数由 Apple 作为核心 macOS 环境的一部分安装。某些软件会安装第三方扩展作为驱动程序,或用于控制硬件

检查第三方 kext 是否导致您的 kernel_task 问题的一种快速方法是将您的机器重新启动到安全模式。为此,请重新启动机器并在启动时按住Shift键。安全模式仅加载所需的内核扩展,因此如果在此环境中没有出现问题,则表明第三方 kext 存在问题。

要深入了解这一点,请照常重启系统并启动Terminal。然后,运行以下命令:

kextstat

这将显示当前加载了哪些内核扩展。所有 Apple 扩展程序将如下所示:

com.apple.[etc]

同时,第三方驱动程序中将包含开发人员名称,如下所示:

com.paragon-software.filesystems

也喜欢这个:

ch.tripmode.TripModeNKE

删除这些的最好方法是卸载相关软件。对于某些应用程序,这仅意味着将应用程序文件移至废纸篓,然后输入您的管理员密码以允许更改。

其他可能包括您需要运行的 PKG 卸载程序文件。对于其余部分,请前往系统偏好设置并查找任何第三方偏好设置面板。

从 OS X El Capitan 开始,Apple 引入了一项新的安全功能,该功能破坏了许多第三方修改。系统完整性保护(简称 SIP)可阻止应用程序将代码注入苹果自己的应用程序,以及写入苹果认为对系统安全很重要的驱动器的某些部分。

这会提高系统稳定性,因此您应该不会在现代版本的 macOS 中看到此问题。

仍然有高 CPU 使用率?当其他一切都失败时该怎么办

这里的最终解决方案有点冒险:删除 Apple 自己的内核扩展。不建议这样做。但是,如果您已经尝试了其他所有方法,但仍然看到 kernel_task 导致 CPU 使用率过高,那么您可能想要尝试这种解决方案。

开发人员和博主 Viktor Petersson 撰写了大量关于 kernel_task 及其相关问题的文章。在他的情况下,这很可能是由不可靠的声卡引起的。Petersson 最初的帖子专注于 Mac OS X Yosemite,不过他后来跟进更新了更高版本的 macOS。

我们尚未测试此修复程序,也不能说它是否适合您。如果您有兴趣试一试,请执行以下操作:

使用 Time Machine 或其他备份解决方案创建 Mac 的备份。

通过启动进入恢复模式并从终端运行以下命令来关闭系统完整性保护:

csrutil disable

按照维克多的方法。首先使用以下命令查找 Mac 的型号:

system_profiler -detailLevel mini | grep "Model Identifier:"

运行以下命令:

cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources

移动并备份与您的模型相关的文件。例如,如果您的标识符是MacBookPro8,2,您将运行:

sudo mv MacBookPro8_2.plist MacBookPro8_2.bak

重新启动到恢复模式并使用以下命令再次启用系统完整性保护:

csrutil enable

同样,这是最后的解决方法。仅当您因 kernel_task 导致 Mac 无法使用而努力完成任何事情时才尝试它。这不是短期解决方案 - 即使在重新安装操作系统后它仍然存在。

即便如此,您还需要在每次重大软件更新或操作系统升级后重复此过程,因为 Apple 会恢复您移动的文件。

修复 Mac kernel_task Bug 问题

通常,升级到新版本的 macOS 会带来新的特性和功能,但也会引入错误。在开始突破极限的旧型号硬件上尤其如此。

但是,如果您仅在更新后才开始在 Mac 上看到 kernel_task 的问题,这可能是罪魁祸首。希望这些技巧之一可以帮助您解决问题并提高 Mac 的性能。