我只想知道kernel_task負責什麼。另外,可接受的最大RAM和CPU使用量是多少?
我只想知道kernel_task負責什麼。另外,可接受的最大RAM和CPU使用量是多少?
內核任務是特殊的,因為它是一個基於Mach 3.0的整個操作系統/微內核。它抽象了大多數核心硬件,時序,消息傳遞和內存處理。
大多數人在活動監視器中註意到的是, kernel_task
累積了所有CPU時間用於輸入/輸出(i / o)處理延遲和計算,以及調度進程和線程。類似地-它累積了不在用戶空間中的所有內存分配。在2014年及以後的Mac電腦上,存在執行此任務以限制CPU的工作-當處理器中的溫度過高時,會將內核任務分配為“無工作”,並顯示CPU繁忙,以使處理器空閒而不會使計算機過熱。這在便攜式產品線中最為明顯-尤其是沒有任何風扇或鼓風機冷卻處理器的MacBook。 Apple在“為什麼不應該在內核中進行編程”中警告潛在的內核程序員,禁用冷卻將導致永久性的不可修復的硬件損壞。
,內核編程是一項巨大的責任。您必須格外小心,以確保您的代碼不會導致系統崩潰,不提供任何未經授權的用戶訪問他人的文件或內存,不引入遠程或本地root漏洞以及不會造成無意的數據丟失或損壞的信息。
如果您在重新啟動後觀看它,將會看到它以最小的RAM和CPU需求開始,並且僅在其他程序運行且需要係統服務時才增長。
要縮小體積,請關閉不需要的端口(WiFi,藍牙等)以及空閒/未使用的程序。如果事情沒有解決,請考慮重新啟動以確保沒有卡住的任務或內存洩漏。如果您有程序在做真實的工作,它們將導致內核同時使用內存和處理器時間-剛開始時要觀察一下是什麼其他程序在引起這種行為。內核很少出現問題,即使程序執行不佳,也無法通過註銷並重新登錄來解決。 kernel_task清理得很好,通常只使用工作負載所需的資源。
Mac OS X內部構件:一種系統方法-Amit Singh-Google圖書:
內核使用任務和線程抽象將其功能劃分為各種執行流。內核使用單個任務(內核任務)和多個線程來執行內核操作,例如調度,線程獲取,標註管理,分頁和Unix異常處理。因此,xnu是一個整體內核,其中包含明顯不同的組件,例如Mach,BSD和I / O Kit,它們都在同一地址空間中的單個任務中作為線程組運行。
http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html:
內核任務不是真正的任務。它代表內核,它是操作系統的核心。它所做的大部分操作都是在應用程序的直接請求下發生的。每次您分配大量內存,打開或關閉文件,讀取或寫入文件,通過網絡提取數據,創建新進程或線程等時,應用程序都會執行系統調用。這些調用使內核為您的應用程序工作。大部分工作都由內核任務承擔,但這實際上是由您的應用程序完成的,儘管是間接的。
內核可能超負荷工作的實際原因是系統內存不足,並且運行異常。檢查活動監視器的內存標籤下的內存壓力圖,看它是黃色還是紅色。
在這種情況下,您可以按內存對進程進行排序並終止消耗大量進程的進程,以減輕壓力。(例如,殺死一些Google Chrome Helper進程)