1. 程式人生 > >臨時解決Mac OS系統下kernel_task佔用大量CPU資源導致系統卡頓一例(不用刪plist檔案)

臨時解決Mac OS系統下kernel_task佔用大量CPU資源導致系統卡頓一例(不用刪plist檔案)

來這裡找解決方案的童鞋,如果你的機器還沒過保。
果斷去找官修,忽略這篇文章!

心急的童鞋直接看目錄,有傳送門!但是仔細看文章可能有奇效!

最近部落格更新進度嚴重滯後。。

因為我遭遇了一個無比水逆的6月,水逆到我懷疑人生。。

某個懂星座的妹紙算了下,6月海王星逆行天秤座。。

然後。。

基本上,我所有混飯吃的傢伙都壞了一遍。。

先是相機,壞了LCD,折騰了快1k大洋;

沒過幾天,RMBP也出故障,我呆的這城市沒有快修站,諮詢了天才吧,大概得出了一個飆淚的維修金額;

如果把車都算是混飯的工具,那6月的最後一天也沒放過我,報廢了一個700大洋的輪胎。。

好了。。

6月終於過去了。。

我寫寫這段苦日子裡的收穫吧。。

6月中旬的某一天,RMBP其實活得好好的,她已經陪我過了34個月,期間各種用得爽快,高負荷運轉毫無壓力。

對比起windows系統來,簡直可以用免維護來形容。

然後,我忽然想給她洗個澡。

去iFixit看了拆機步驟,逛了幾個論壇的帖子借鑑下清灰經驗,買了套工具就開始動手幹活。

清灰過程是順利的,拆解也沒有什麼難度,順手換了矽膠,一路感嘆蘋果的做工精湛。(後來仔細思考,發現我在拆解過程中犯了低階且致命的錯誤!

但是,合蓋後問題就來了!!!

開機讀條末端卡了一下,然後進入桌面,桌面擺放的圖片檔案縮圖顯示緩慢,滑鼠劃過Dock欄的時候,圖示放大有卡頓。

這個時候還沒覺得問題大,以為是什麼應用後臺偶爾佔一下資源而已。

漸漸地,風扇聲越來越大,直到跟瀑布聲一樣!!!

根據經驗,以前只有在修大型圖片或者玩遊戲的時候才會聽到風扇聲,但是風扇聲不停下來,這就有問題了。

伴隨著越來越大的風扇聲,系統也變得越來越卡,直到點開一個Photoshop都提示無響應。

強制退出後,習慣性地開啟活動監視器,發現了一個叫kernel_task的程序佔用了400%以上的CPU,最高飆到800%多。。

而且這傢伙很奇怪,別人都能結束,他不能。什麼鬼?!

因為學過點Linux,印象中這個叫kernel的東西來頭不小,網上搜了一下,漫長的折騰之路就開始了。。

0x00 什麼是kernel_task?

沒有對Mac OS系統下的東西有深入瞭解。。

查了些資料,大概知道kernel_task是一個mac系統下的管理程序,不知道這種表達對不對?

或者,這貨根本就不能說是程序,屬性好奇葩。。

尋求幫助的過程中發現個問題,網上因為MBP風扇滿速而求助的帖子,都會提到這個kernel_task的東西佔用了大量CPU,導致系統卡頓。

很多回復都提到,這是由於系統認為機器某處有高溫而呼叫kernel_task搶佔資源,強制降頻,提高風扇轉速,目的是散熱。

但是,我現在機器很涼快啊!!

感測器出問題了?

手賤開機打掃衛生整壞了什麼地方?

水逆到這種程度沒可能吧?!

重新拆開後蓋細細檢查了一遍,好像什麼都好好的。。

0x01 聽說這叫修改ACPI電源管理?

如果你搜索“kernel_task佔用大量CPU”,你會在大多數帖子裡看到如下的解決辦法:

1)檢視“”-“關於本機”-“更多資訊”-“系統報告”的“硬體概覽”中的第二行——型號識別符號並牢記

2)在Finder中進入路徑“系統”-“資源庫”-“Extensions”(路徑為System\Library\Extensions),在Extensions中搜做到項“IOPlatformPluginFamily.kext”,右擊它並選擇“顯示包內容”,此時看到“Contents”資料夾

3)進入“Contents”-“Plugins”資料夾內找到項“ACPI_SMC_PlatformPlugin.kext”,右擊它並選擇“顯示包內容”,此時看到“Contents”資料夾

4)進入“Contents”-“Resources”資料夾內,找到檔名跟步驟1)中顯示之型號識別符號一致的“.plist”檔案並刪除它 

5)重啟計算機


因為這個故障把問題指向了溫度感測器,所以才有了這個解決方案。

這個方案裡要刪的檔案,應該和溫度管理有關。

但是!!如果你也碰到一樣的故障,我可以告訴你,高於10.11的版本,直接忽略這一條!

因為你根本找不到和你機器型號標示符的檔案。

我機器上的最高只去到MacBookPro8.3,所以我推斷高於10.8.3的系統,此方法無效。

沒有機器可以給我驗證,純推斷,如果你有需要的話可以僥倖試下。

好吧,這條完蛋。

0x02 安全模式下能刪上面這些檔案?

第一個晚上,通宵折騰。

一邊查帖子,一邊動手修。

有個帖子裡面說,全刪了這些檔案,故障解決。瞬間睡意全無,幹!

開機按住Shift,啟動到安全模式。

sudo -s,啟用超級管理員獲取系統最高許可權。

按上面的路徑,找到最後的Resouces資料夾,複製一份放到桌面上防止不測,然後,刪!

結果,感覺像撞在了一塊水泥牆上一樣的,心情一下子又炸了。。

不死心,進Shell用命令列來刪,不行。。

回到正常啟動的系統,再試一下,還是不行。。

這裡也可以跟你說,如果你是10.11的系統,直接跳過這一節吧,無效!

舊版系統假如刪除這些plist檔案後風扇正常了,我也盡責地提醒一下,修改了ACPI電源管理檔案,有造成更大損壞的潛在風險。

討論一下,是不是存在這麼一種可能:

因為系統認為機器存在高溫,所以提高了風扇轉速,但是我們把管理檔案刪除了,風扇速度降了下來。等到真正出現高溫的時候,風扇不提高轉速了?

後果嘛。。

有點像狼來了對不對?

沒機器實際驗證,純猜想,下面繼續折騰吧。。

0x03 我直接跳過了重做系統

因為是清灰過後出現的故障,所以判定系統沒事。

何況,現在只是執行卡卡的,系統照樣是可以進的。

0x04 風扇調速外掛最好別用

這裡順便提一下。。

由於要檢視溫度是否正常,我在機器故障出現後裝了個外掛istat menus。。

類似的軟體還有比較出名的smcFanControl、MacsFanControl等等。

沒有深入研究這些調轉速的外掛怎麼用,但是以前看過好些童鞋調了風扇轉速之後就改不會自動模式的狀況。

不知道是軟體BUG還是破壞了系統檔案,總之。。

沒事就別用,正常情況下風扇轉速高了也是為了散熱而已,不至於上升到噪音級別吧。

0x05 自檢發現了問題的線索

睡了一覺。。

瞎逛帖子發現Mac居然還有自檢程式,這麼高階!

開機按住D,然後過了大概15分鐘,出來個PFM002的故障碼,還有中文,真貼心!

這裡忘了拍照,大概就是指向了SMC控制器故障。

0x06 進水了?

豆瓣有個帖子說,不小心打翻了水杯,MBP進了水,故障一樣。

飆風扇,系統卡,同樣發現kernel_task的影子。

忽然想起我的那罐矽膠,那是大一的時候買的,已經過期了。

劣質矽膠碰到高溫會反水!!!我的天!!!

我居然在一個2w大洋的機器上塗5塊錢的矽膠!!!還是過期的!!!

開啟後蓋一看,果然CPU和GPU旁邊的矽膠化水了。

趕緊買了條新的重新上一遍,開機後故障依舊。

有人說他的機器進水,讓風扇這麼烤了兩天自己就正常了。

我只能說他,命好。

我放著她烤了72小時以上,感覺問題並不能這麼解決。

0x07 重置SMC?

以前看過網友提供的Mac操作手冊,記得有些莫名其妙的問題可以用重置NVRAM和SMC控制器來解決。

查看了官方的幫助文件,赫然寫著:

這個好簡單!幹!

按著重置NVRAM,再重置SMC的順序做了一遍。

每次看到新解決方法,都像個溺水者一樣以為抓住了救命的稻草。

然而,6月從來沒有放過我。

該方法對於我的機器無效。

這裡說明一下,不是否認這個方法不能解決問題,而是對於我的個例無效。

如果你在這裡成功解決故障,那麼恭喜你!

這兩個方式,也推薦作為最先嚐試的方式,畢竟簡單的很。

0x08 永不放棄發現曙光

重置SMC無效後,我終於冷靜下來,諮詢了幾種處理方式。

1、天才吧預估的價格太高了,可能達到機身價的40%,這得接近8k,我還不如買一臺新的?

2、淘寶換個二手主機板,1200塊,但是畢竟是維修過的板,不敢保證能撐多久;

3、發現深圳福田有一家維修站,能做晶片級的維修,經營著一個網站,上面的修復案例很牛逼。但是機器要麼寄過去要麼送過去,無法馬上修復,我不想冒險;

4、京東二手換新服務,這個機器開機正常,能折7000+大洋,開機不正常,只能折700+大洋(我這個叫正常不正常?說它只是卡,可能會過審的哈~)


理工科出身的我,從來就沒放棄過折騰。

某天夜深人靜,對著拆開的機背沉思了很久,還拿著放大鏡檢查有沒有哪裡給戳到導致託焊。

無果。

想起上面重置SMC的步驟中,分電池可拆卸和不可拆卸。

開啟後蓋進行拆解的第一步是斷開電池連結,這樣的話,電池不就是可拆卸??

到這裡也沒在想解決問題,就是好奇自己的想法對不對,所以做了以下嘗試。。

我試著斷開電池,外接電源後開機,故障依舊。

接下來執行“電池可拆卸情況下”的重置SMC步驟。。

操作過程中,我習慣性地按下Shift+Control+Option+Power,然後發現外接電源還連線著,我就拔了電源。。然後又發現了我做的是“電池不可拆卸情況下”的動作。。

具體怎麼整的,我也忘了。。

然後,她莫名其妙地開機了,這段日子裡都是聽著風扇聲由小到大,所以敏銳地感覺到這次開機非常不一樣!!!

呼的一下就能聽出風扇是滿速的,剛開機就是滿速?!

最神奇的是,進入系統非常流暢,流暢得跟我第一天開啟她一樣!甚至超過了第一次開機的體驗!

試著執行一些高負載的軟體,PS,LR,Dota2等等,毫無壓力!

這個時候我還不知道我是怎麼做到的。。但我知道至少我能減少損失。。

執行一段時間後,發現合蓋不會關螢幕、感測器外掛裡所有溫度感測器都消失了。。甚至連顯示N/A都沒有。。連對應感測器都沒出現,就像。。沒有連線??

倒是僅剩一個硬碟的溫度孤零零的。。

難道是。。主機板上所有的感測器都被遮蔽了?!

果斷去看了kernel_task的佔用情況,發現只有1~2%,這又是什麼鬼?!


0x09 歪打正著發現臨時解決方法

果斷關機。。

接上電池,按正確步驟重置SMC。

重開機,風扇安靜了,但是2分鐘後我又受打擊了。。故障依舊。。

折騰到這裡,我算是明白一半了。

就算我修不好這個故障,至少存在一個方法,讓這機器帶著風扇的呼呼聲跑最高效能!

仔細回一下我剛才弄錯的步驟,前前後後經過了一個多小時,各種開機關機,反正就是不按正確的重置步驟來,各種凌亂組合。

最後,終於讓我折騰出來了:


心急的童鞋直接看這裡:

1、關機;

2、插外接電源;

3、按住Shift+Control+Option+Power,大約10秒鐘;

4、放開左手的三鍵,右手仍然按住Power不放10秒鐘(這裡時間宜長不宜短,試過了太快放開就無效);

5、仍然保持按住Power,左手拔下外接電源,等待5秒鐘插回去(這裡也是宜長不宜短);

6、正確執行以上步驟後,此時你插回外接電源,介面上的燈是不會亮起的,如果燈沒有亮起,你就可以放開右手的Power了;

7、開機。

如果步驟正確,此時的風扇應該是剛開機就飆滿速,文章內我姑且將這個模式稱為“不知名模式”。

0x10 用此方法的後遺症

好了,至少我的MBP該有的效能回來了,除了呼呼呼的風扇聲,下面是使用了幾天後發現還存在的問題:

1、電池電量顯示為0

進系統後發現電池圖示不見了。開啟系統偏好設定裡的節能器,發現電池電量赫然顯示為0。這幾天開開關關機器,實際上使用的時間並不多,不可能耗盡的吧?

拔下外接電源,沒有掉電。

所以,電池仍然是在供電的,但是系統識別不到它了。

此時看到充電器上的黃燈(充電狀態),擔心會不會過充炸了電池,查了資料,電池自己有過充保護,那先不管這個故障了;

2、電池不充電

看不到電池,但是當電池電量不滿的情況下,充電器會亮黃燈。

好像跟正常系統沒什麼區別,但是它,沒有在充電!沒有在充電!沒有在充電!

回到正常系統才能充電,充滿了之後亮綠燈,但是回到不知名模式下,有可能會消耗電量。

關鍵是,消耗了還是綠燈!消耗了還是綠燈!消耗了還是綠燈!

直到耗盡重啟,你依然什麼都不知道。。

3、合蓋不休眠

吃晚飯的時候習慣性合蓋,結果吃完回來發現縫隙透出一道白光,耳邊還有風扇瀑布般的聲音。

我去。。

試了鎖定螢幕,正常,會自動黑屏鎖屏;

試了下睡眠,也正常,黑屏,風扇停轉。

看來也不用著急解決了。

4、睡眠喚醒後wifi不穩定

好幾次把機器從睡眠中喚醒起來後,發現wifi是連線的,但是網路打不開。

就算打開了網頁,也是斷斷續續,每次正常時間不超過2分鐘。

同時,家裡其他客戶端都正常使用著網路。

重新啟動機器,網路就正常了。

我。。無解。。

5、風扇滿速無法修改轉速

此模式下所有感測器(除了SSD的)都消失了,系統識別不到。所以,任何改風扇轉速的軟體也無能為力。

少年,調整心態吧,一點點風扇聲,當白噪音也不錯。

6、啟用獨立顯示卡會消耗電池電量,電量耗盡會重啟

這個故障是在兩次高負荷運轉之後發現的。

第一次意外重啟,摸了鍵盤中間偏上的位置,有點熱,以為是過熱保護;

自動重啟後當然是繼續工作啦,剛跑起需要GPU的東西立馬又重啟了。什麼鬼?!

按正常步驟重置SMC,回到卡卡的系統裡,看看感測器資料,沒有多熱啊。。

瞄了一眼狀態列,發現電池電量為0,顯示正在充電。

神奇了!

又有新發現(不知道對不對):Mac會在高負載的情況下使用內建外接電源一同供電提高功率?

經過一夜充滿電後重新試了一回高負載運轉(在不知名模式下),果然。。

當電池消耗完,就會突然重啟,此模式下你是看不到電池電量的,只能估算。。

不過我的電池健康度很高,跑了14小時高負載才耗出了個重啟,那這個影響也不大。

0x11 離開不知名模式的方法

心急的童鞋還必須看這裡:

用正常的重置SMC步驟就可以退出不知名模式了。

回到正常模式下,除了kernel_task仍然會佔用大量CPU資源導致卡頓,機器其他方面都沒問題,上一章節說到的故障全部消失。

進水的童鞋可以用不知名模式烤乾,烤兩天後回去正常模式看看,可能有奇效。

對於在不知名模式下電池電量會消耗的問題,我是在深夜關機後順手重置一下SMC,看到充電器指示燈閃成黃色就OK了。

一覺醒來,充電器亮綠燈,表示電量已經充滿,再重置回不知名模式。

0x12 後續的折騰

機器能好好地跑起來,心情自然舒坦許多,至少能混飯吃了啊。

死活找不到MBP主機板的電路圖,只好拆下主機板看看背面有沒有什麼問題。

仍然沒有發現。

朋友說我矽膠塗多了,可能影響了什麼電路,我也果斷買了條矽膠,清乾淨了所有陳年老膠,重新塗上。

仍然沒用。

好吧,不折騰了。

0x13 說下那個低階且致命的錯誤

RMBP的設計非常精密,螺絲的型號有很多,看著都能打進去,其實長短是有區別的。

我在拆機的時候,沒有仔細去看螺絲,看起來覺得一樣的就它們歸類到一起。

清灰完裝左邊風扇,打回螺絲的時候聽到啪的一聲,沒在意;

接著裝右邊風扇,也是打回螺絲的時候聽到啪的一聲,感覺出事了。

後來再拆風扇下來的時候,這兩個焊盤掉了。

而且,那個很牛逼的維修網站上,就有一篇打錯螺絲導致花屏送修的案例!!!

大意就是,螺絲太長把焊盤打爆了,PCB過孔裡有導線受到了損壞。

無法驗證!!!

但我感覺,問題出在這了!!!

仔細看了掉下來的螺絲位,底部確實粘連了PCB表層的黑色塗層,但是看不清是否有斷裂的導線。

總之,不要打錯螺絲!不要打錯螺絲!不要打錯螺絲!

0x14 總結

首先。。

再次重申這篇文章只適合已經過保的機器,或者違反保修條約的機器。沒有過保你自個折騰個啥?

再次。。

土豪朋友可以直接官修或者換新機,地精說,時間就是金錢我的朋友。

我這麼做一是窮,二是理工心不死愛折騰;

最後。。

風扇滿載就滿載吧,還是那句話,心態好了,這就只是一點點白噪音;

累壞了風扇,馬雲家買一個也不貴;

有人說這麼做相當於系統沒有節能模式,長時間滿載輸出可能過熱。這放心好了,風扇滿速的散熱能力槓槓的;

還有人說怕燒大件?RMBP的CPU和GPU還有記憶體是焊死在主機板上的,壞一點也是換主機板,壞大件也是換主機板,我這種能跑起來的情況還怕個啥?

-----------(我是分割線)-----------

文章雖為原創,但很多解決方法都是參考了別人的帖子和官方文件。

感謝網路上所有分享瞭解決方法的人,有你們的引導我才能找到這個方法。

雖為旁門左道,但仍希望能幫到有同樣遭遇的童鞋。

如果有更好的方案,速速教我!在此先謝!

-----------(我是分割線)-----------