kidle_inject 导致非常高的负载

kidle_inject 导致非常高的负载

每当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

我执行了以下步骤,效果很好。

  1. 检查模块是否已加载。

    lsmod |grep -i intel_powerclamp
    
  2. 如果前一个命令显示模块已加载,则执行下一行。

  3. 在您的 crontab 规则中添加以下行@reboot /sbin/rmmod intel_powerclampecho '/sbin/rmmod intel_powerclamp' >> /etc/bash.bashrc(它将影响所有用户)或echo 'blacklist intel_powerclamp' > /etc/modprobe.d/disable_mods.conf

相关内容