参考文章: https://blog.csdn.net/github_36186488/article/details/72725783
最近在AppStore下载更新了最新的Xcode11.0 运行公司的项目后,电脑就发热厉害,接着风扇呼呼转动;编译运行完项目后,电脑非常卡顿;关掉所有程序后依然卡顿.后来关机重启好几次依然存在卡顿,而且电脑明明不热,风扇却一直转动.
后来我打开活动监视器 发现有个叫 kernel_task 进程一直在占用CPU资源而且占用率高达400%,有时候达到600%. 根据进程名也能猜出这是个系统内核进程.
1.软件冲突:禁用和卸载cleanMyMac,电脑管家等一些电脑管理软件,重启电脑,问题依然存在;
2..猜测是系统bug: 把系统从MacOS 10.14.4 升级到 10.14.6 ,依然存在这个问题
3.打电话联系苹果客服,各种组合键重置SMC(系统管理控制器),依然无法解决
查询资料得知:
kernel_task进程是mac的系统管理进程,kernel_task进程cpu占用率之所以久高不下是因为你的Mac的温度传感器坏了,并且向kernel_task这个进程传递了错误的信息,导致Mac以为自己的cpu温度现在特别高,所以调用kernel_task进程抢占计算机资源来降低其他进程的使用,使得cpu降频降温。而上面所说的那个plist文件就是用来配置温度管理器的
1 .检查关闭Mac电脑的“系统完整性保护”机制(SIP) :
终端输入 csrutil status 查看内核保护状态是否关闭,如果是enable则进入下一步,如果是disable进入第4步. 一般情况下内核保护是默认开启的
2.进入恢复模式: 关机,然后开机长按cmd + r 键,直到看到开机画面松手
3.在恢复模式下,进入终端,使用 csrutil disable 命令关闭内核保护,重启
4.正常进入系统后输入 csrutil status 可以看到 状态时disable ,前往/System/Library/Extensions/IOPlatformPluginFamily.kext 这个路径下,修改
IOPlatformPluginFamily.kext 文件名或者把这个文件移动到别处,目的是让系统无法读取到这个文件例如我是把这个文件名改为IOPlatformPluginFamily__old__.kext,
重启电脑,问题解决
后续
1.上面操作问题只是暂时解决了;一旦电脑休眠,会有其它各种bug;所以当电脑卡顿问题解决后,最好再把那个文件改回去;
2.如果上面问题解决了,建议保持现状,不要更新系统,否则会导致失效,再次出现那个问题.