從 Mac 上的“kernel_task”進程中看到高 CPU 使用率?了解如何解決此問題。

當計算機開始運行緩慢時。如果已經關閉了所有可以關閉的程序,並且 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 使用率的另一個常見原因是 Adobe Flash。Flash 對瀏覽網絡至關重要的日子已經一去不復返了,但您可能仍然需要它來訪問特定的網絡應用程序或網站。
可以使用 Google Chrome 之類的瀏覽器,而不是一直安裝 Flash,它提供 Flash(盡管是可選的)。很可能,您根本不需要 Flash,因此可以安全刪除。此外,由於 Adobe 自 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 的性能。