Mac OS系统下kernel_task占用大量CPU资源导致系统卡顿

时间:2024-11-14 09:02:11

来这里找解决方案的童鞋,如果你的机器还没过保。
果断去找官修,忽略这篇文章!

心急的童鞋直接看目录,有传送门!但是仔细看文章可能有奇效!

 

最近博客更新进度严重滞后。。

因为我遭遇了一个无比水逆的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. 1)查看“”-“关于本机”-“更多信息”-“系统报告”的“硬件概览”中的第二行——型号标识符并牢记

  2.  
  3. 2)在Finder中进入路径“系统”-“资源库”-“Extensions”(路径为System\Library\Extensions),在Extensions中搜做到项“”,右击它并选择“显示包内容”,此时看到“Contents”文件夹

  4.  
  5. 3)进入“Contents”-“Plugins”文件夹内找到项“ACPI_SMC_PlatformPlugin.kext”,右击它并选择“显示包内容”,此时看到“Contents”文件夹

  6.  
  7. 4)进入“Contents”-“Resources”文件夹内,找到文件名跟步骤1)中显示之型号标识符一致的“.plist”文件并删除它

  8.  
  9. 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控制器故障。

如何在 Mac 上使用 Apple Diagnostics

Apple Diagnostics:参考代码

 

0x06 进水了?

 

豆瓣有个帖子说,不小心打翻了水杯,MBP进了水,故障一样。

飙风扇,系统卡,同样发现kernel_task的影子。

忽然想起我的那罐硅胶,那是大一的时候买的,已经过期了。

劣质硅胶碰到高温会反水!!!我的天!!!

我居然在一个2w大洋的机器上涂5块钱的硅胶!!!还是过期的!!!

打开后盖一看,果然CPU和GPU旁边的硅胶化水了。

赶紧买了条新的重新上一遍,开机后故障依旧。

有人说他的机器进水,让风扇这么烤了两天自己就正常了。

我只能说他,命好。

我放着她烤了72小时以上,感觉问题并不能这么解决。

 

0x07 重置SMC?

 

以前看过网友提供的Mac操作手册,记得有些莫名其妙的问题可以用重置NVRAM和SMC控制器来解决。

查看了官方的帮助文档,赫然写着:

 

这个好简单!干!

按着重置NVRAM,再重置SMC的顺序做了一遍。

如何重置 Mac 上的 NVRAM

重置 Mac 上的系统管理控制器 (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. 1、关机;

  2.  
  3. 2、插外接电源;

  4.  
  5. 3、按住Shift+Control+Option+Power,大约10秒钟;

  6.  
  7. 4、放开左手的三键,右手仍然按住Power不放10秒钟(这里时间宜长不宜短,试过了太快放开就无效);

  8.  
  9. 5、仍然保持按住Power,左手拔下外接电源,等待5秒钟插回去(这里也是宜长不宜短);

  10.  
  11. 6、正确执行以上步骤后,此时你插回外接电源,接口上的灯是不会亮起的,如果灯没有亮起,你就可以放开右手的Power了;

  12.  
  13. 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还有内存是焊死在主板上的,坏一点也是换主板,坏大件也是换主板,我这种能跑起来的情况还怕个啥?