Front-end

mac外接显示器kernal_task内存占用高问题解决

遇到的问题

mac连接外接显示器之后,kernal_task占用的cpu飙升,通常达到500%,电脑卡顿,打字都是2s后才显示。遍寻方案无果,在英文网站上发现了解决方法。记录如下。

解决方案

osx版本 10.13.2 解决方案

  1. 开机时进入Recovery Mode(开机的时候按住Command + R)
  2. 选择语言之后,左上角 Utility > Terminal开启终端,命令行输入csrutil disable(禁用系统文件保护)
  3. 重启,此处原文章要求修改此文件
    /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/[MacModelIdentifier].plist
    其中MacModelIdentifier是指Mac的识别符,查看方式(Mac > 关于本机 > 系统报告 > 型号识别符),找到对应文件后,将此文件改为 bugfix.plist(或者其他任意名字)。
    但是我的系统版本号为 11.4,并没有对应文件。 此时参考低版本的方法,将`/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/目录下的X86PlatformShim.kext改名为X86PlatformShim.kext.disabled
  4. 清除kext缓存 (不确定是否需要这步)
    sudo touch /System/Library/Extensions
  5. 重启,查看kernal_task的CPU占用是否有所改善,如果可以的话,重新进入Recovery Mode,csrutil enable

低版本解决方法

  1. 可能低版本没有系统文件保护,所以给出的资料就是高版本的其中几步。
  2. 通过重命名关闭kext

    1
    2
    cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/Plugins
    sudo mv X86PlatformShim.kext X86PlatformShim.kext.disabled
  3. 清除缓存
    sudo touch /System/Library/Extensions/

  4. 重启

参考资料

国外论坛的解决方法