![kidle_inject 导致非常高的负载](https://linux22.com/image/978786/kidle_inject%20%E5%AF%BC%E8%87%B4%E9%9D%9E%E5%B8%B8%E9%AB%98%E7%9A%84%E8%B4%9F%E8%BD%BD.png)
每当kidle_inject
我的系统开始运行时,负载就会猛增。一般来说,负载只会达到这个水平,5.23, 3.65, 2.54
但很多时候,负载会超过 15。这时系统就会停止运行,我不得不关闭它。
这仅在kidle_inject
进程启动时发生。我该如何禁用此进程,以便我的机器可以工作,我可以完成一些工作。
例子top
:
top - 12:43:48 up 3:02, 3 users, load average: 6.57, 5.53, 3.33
Tasks: 256 total, 3 running, 253 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.9 us, 16.6 sy, 0.0 ni, 74.7 id, 0.5 wa, 0.0 hi, 2.3 si, 0.0 st
KiB Mem: 8080252 total, 7937856 used, 142396 free, 258904 buffers
KiB Swap: 0 total, 0 used, 0 free. 4061336 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13509 root -51 0 0 0 0 S 54.7 0.0 3:29.47 kidle_inject/1
13511 root -51 0 0 0 0 S 54.1 0.0 3:30.92 kidle_inject/3
13510 root -51 0 0 0 0 S 48.8 0.0 3:11.60 kidle_inject/2
13508 root -51 0 0 0 0 S 47.6 0.0 3:08.47 kidle_inject/0
答案1
看起来这是一个漏洞在内核中。
根据该错误报告的评论,运行该命令sudo rmmod intel_powerclamp
似乎已经停止了kidle_inject
进程,并且我目前还没有注意到这样做存在任何问题。
希望这个问题能尽快解决。如果我发现任何问题,我会更新此答案。
更新
rmmod
每次启动机器时都需要运行该命令。自从运行此命令以来,我没有注意到发生任何不良情况。
更新 2
自从这样做以来,我注意到我的 CPU 温度现在趋于低得多,在 ~72° 左右
要在启动时进行此设置,请使用命令
echo "blacklist intel_powerclamp" > /etc/modprobe.d/disable-powerclamp.conf
答案2
接受的答案是不完整的。根据错误评论,kidle_inject 进程被派生到节流处理器并保护它免受进一步过热。
在“修复”错误之前,请确保您的风扇干净且工作正常。我遇到了这个问题,发现通风口满是灰尘。清洁并重新启动后,不再产生 kidle_inject。
答案3
如果您使用的是 MacBook,请确保已macfanctld
安装。如果没有安装,风扇将固定在 2000 RPM 左右(最高 6000 RPM)。这可以通过命令看到sensors
。在这种情况下,powerclamp 将尽早启动以节省 CPU。
答案4
我执行了以下步骤,效果很好。
检查模块是否已加载。
lsmod |grep -i intel_powerclamp
如果前一个命令显示模块已加载,则执行下一行。
在您的 crontab 规则中添加以下行
@reboot /sbin/rmmod intel_powerclamp
或echo '/sbin/rmmod intel_powerclamp' >> /etc/bash.bashrc
(它将影响所有用户)或echo 'blacklist intel_powerclamp' > /etc/modprobe.d/disable_mods.conf
。