Kipmi0 在 centos 6.4 上消耗高达 99.8% 的 CPU

biz*_*z14 15 centos

我们有 CentOS 6.4,kipmi0显示为 99.8% cpu 和 0.0% 内存,平均负载为 1.00。我们应该怎么做来纠正这个问题?

小智 24

根据IPMI 文件

该线程可以使用大量 CPU,具体取决于接口的性能。这会浪费大量 CPU 并导致检测空闲 CPU 和使用额外功率的各种问题。为了避免这种情况, kipmid_max_busy_us 设置了 kipmid 在休眠一个滴答之前旋转的最长时间(以微秒为单位)。该值在性能和 CPU 浪费之间取得平衡,需要根据您的需要进行调整。也许有一天,自动调整会被添加,但这不是一件简单的事情,甚至自动调整也需要调整到用户所需的性能。

所以,我们可以执行这个命令来设置 kipmid_max_busy_us 参数:

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Run Code Online (Sandbox Code Playgroud)

在我们的系统中,设置这个参数后,kipmi0的cpu下降到了15%。

你可以试试这个。

要使更改持久化,您可以配置 ipmi_si 内核模块的选项。
/etc/modprobe.d/, ie 中创建一个文件/etc/modprobe.d/ipmi.conf,并添加如下内容: 现在每次将 ipmi_si 内核模块加载到内核中时,该参数都应该自动正确设置。
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100


slm*_*slm 6

调试问题

其他系统是否与该系统相同?你将不得不确定它们是。他们之间必须有一些根本不同的东西。固件?相同的 RPM 版本?

您可以使用lshwdmidecode、 等工具,并查看dmesg日志以获取有关不同之处和根本原因的线索。

通过在未出现此问题的系统之一和存在此问题的系统上运行此命令,我将获得安装的 RPM 的良好基准,并比较软件包列表以确保它们都处于相同的版本。

 # machine #1
 $ rpm -aq | sort -rn > machine1_rpms.txt

 # machine #2
 $ rpm -aq | sort -rn > machine2_rpms.txt     
Run Code Online (Sandbox Code Playgroud)

然后在同一台机器上获取文件并对这两个文件进行 sdiff:

 sdiff machine1_rpms.txt machine2_rpms.txt
Run Code Online (Sandbox Code Playgroud)

潜在原因#1

IBM 网站上有一个技术说明,标题为:Kipmi0 可能会显示 Linux 上的 CPU 利用率增加,关于这个问题。根据这个问题,您基本上可以忽略该问题。

问题描述

kipmi0 进程在 Linux 中可能会显示 CPU 利用率增加。当 IPMI(智能平台管理接口)设备,例如 BMC(基板管理控制器)或 IMM(集成管理控制器)繁忙或无响应时,利用率可能会增加到 100%。

使固定

无需修复。您应该忽略增加的 CPU 使用率,因为它对实际系统性能没有影响。

变通方法

  1. 如果使用 IPMI 设备,请重置 BMC 或重新启动系统。
  2. 如果不使用 IPMI 设备,请通过发出以下命令来停止 IPMI 服务:

    服务 ipmi 停止

潜在的解决方案#2

我在某人的博客上发现这篇文章的标题简单:kipmi0 问题。这个问题听起来和你的一样。该问题可追溯到作为lm_sensors包的一部分加载的 2 个内核模块的问题。

这些是 2 个内核模块:

  • ipmi_si
  • ipmi_msghandler

变通方法

您可以使用以下命令手动删除这些:

rmmod ipmi_msghandler
rmmod ipmi_si
Run Code Online (Sandbox Code Playgroud)

要使此修复永久有效,您需要lm_sensors通过如下注释来禁用在其中一个配置文件中加载这些特定内核模块:

# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
Run Code Online (Sandbox Code Playgroud)

lm_sensors进行这些更改后重新启动:

/etc/init.d/lm_sensors
Run Code Online (Sandbox Code Playgroud)