解决Mac OS CPU频繁发热,风扇狂暴的问题 By 降低睿频,关闭 Turbo Boost。
1 起因
之前刚买回来Mac,就发现有时候CPU莫名超过100%,风扇也会快速响起来。特征如下:
打开活动监视器,若干个进程超过100%,包括但不限于:
googleChrome helper
finder
oneDrive
flash
…
最近因为需要重度使用onedrive,问题变得更加严重了。
新增加一个同步文档,刚刚在PPT中保存完,一秒钟之后风扇就转起来了,而且,十几秒同步完成后,指导几分钟后,机器才彻底冷静下来。
查看活动监视器发现,进行文档同步时,finder和onedrive都超过100%几分钟。
同步一个文件,至于么?
后来了解到,可能是MacBook Pro开启了睿频,也就是Turbo Boost。
这是一项可以使CPU超频的技术,用于专业软件可以进行更强的运算性能。
但是不知为何,很多不需超频的应用也频发触发超频。如之前提到的onedrive。
综合考虑了下,我的MacBook Pro 即时不超频,也有2.2G HZ,是足够日常使用,甚至足够绝大部分专业软件了。
所以,我决定,关闭Turbo Boost,来缓解能耗,解决onedirve等应用触发100% CPU占用率的问题。
2 配置与准备
我的电脑配置如下:
电脑:MacBook Pro (Retina, 15-inch, Mid 2015)
CPU:2.2 GHz 四核Intel Core i7
内存:16 GB 1600 MHz DDR3
操作系统:macOS Catalina 10.15.1 (19B88)
下载和安装软件:Turbo Boost Switcher
官网:http://tbswitcher.rugarciap.com/
下载地址:点击下载免费版(不需专业版)
说明:软件官网说,可以使用此软件切换,但是可能是因为新系统权限问题,我点击禁用Turbo Boost是没有任何效果的。
所以我转向粗暴的方式,直接使用命令行关闭Turbo Boost。
因为我确信,我不需要使用到什么要求超过2.2ghz cpu的应用。
我也强烈推荐,所有的Mac book Pro 和 iMac 的标压CPU用户,平时关掉Turbo Boost,因为本身的CPU已经足够强大了。
开启Turbo Boost,会频发引发一些应用触发Turbo Boost,影响能耗甚至硬件寿命。
3 执行脚本
先确认是否有此文件,如果有,删除之。(如未执行任何操作,无此文件)
/Library/LaunchDaemons/com.rugarciap.AlwaysLoadTurboBoostSwitcher.plist
3.1 安装软件
没啥好说的,安装上面下载的Turbo Boost Switcher免费版。
3.2 安装驱动
开启一个新的终端窗口。
依次执行以下命令:
sudo su
cp -r /Applications/Turbo\ Boost\ Switcher.app/Contents/Resources/DisableTurboBoost.64bits.kext /Library/Extensions/
kextload /Library/Extensions/DisableTurboBoost.64bits.kext
3.3 配置开机自动加在此驱动
开启一个新的终端窗口,注意,是与3.2终端不同的新窗口。
依次执行以下命令:
sudo su
nano /Library/LaunchDaemons/com.rugarciap.KextLoadDisableTurboBoost.plist
你会看到当前终端机视窗变成了 NANO 编辑器,复制以下内容、command + V 贴入 NANO 编辑器即可:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.rugarciap.KextLoadDisableTurboBoost</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>kextload /Library/Extensions/DisableTurboBoost.64bits.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
然后,Ctrl+O 保存文档
然后,Ctrl+X 离开 NANO 编辑器
然后执行以下命令:
launchctl load -w /Library/LaunchDaemons/com.rugarciap.KextLoadDisableTurboBoost.plist
完毕。
4 FAQ:
问:鬼知道驱动有没有加载啊…
答:终端机执行这条指令:「kextstat | grep ugarciap」。
问: Turbo Boost 是真停用了还是假停用了啊…
答:
方式1,监测Turbo Boost Switcher软件的状态显示。
方式2,去 Intel 官方网站下载「Intel® Power Gadget」自己看实时频谱分析。
问:暂时开启 Turbo Boost ?
答:终端机执行这条指令,卸载驱动:
sudo kextunload /Library/Extensions/DisableTurboBoost.64bits.kext
问:暂时开启了 Turbo Boost,现在想要关掉、但又不方便现在重新开机,怎整?
答:终端机执行这条指令,加载驱动:
sudo kextload /Library/Extensions/DisableTurboBoost.64bits.kext
问:睡眠苏醒之后发现 Turbo Boost 被恢复了,怎办?
答:顺序执行如下三条终端机指令:
sudo su
kextunload /Library/Extensions/DisableTurboBoost.64bits.kext
kextload /Library/Extensions/DisableTurboBoost.64bits.kext
问:能卸了它不?
答:不需要重新开机,直接删了这两个文件即可:
/Library/Extensions/DisableTurboBoost.64bits.kext
/Library/LaunchDaemons/com.rugarciap.KextLoadDisableTurboBoost.plist