臨時解決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還有記憶體是焊死在主機板上的,壞一點也是換主機板,壞大件也是換主機板,我這種能跑起來的情況還怕個啥?
-----------(我是分割線)-----------
文章雖為原創,但很多解決方法都是參考了別人的帖子和官方文件。
感謝網路上所有分享瞭解決方法的人,有你們的引導我才能找到這個方法。
雖為旁門左道,但仍希望能幫到有同樣遭遇的童鞋。
如果有更好的方案,速速教我!在此先謝!
-----------(我是分割線)-----------