我们有 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
其他系统是否与该系统相同?你将不得不确定它们是。他们之间必须有一些根本不同的东西。固件?相同的 RPM 版本?
您可以使用lshw
、dmidecode
、 等工具,并查看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)
IBM 网站上有一个技术说明,标题为:Kipmi0 可能会显示 Linux 上的 CPU 利用率增加,关于这个问题。根据这个问题,您基本上可以忽略该问题。
问题描述
kipmi0 进程在 Linux 中可能会显示 CPU 利用率增加。当 IPMI(智能平台管理接口)设备,例如 BMC(基板管理控制器)或 IMM(集成管理控制器)繁忙或无响应时,利用率可能会增加到 100%。
使固定
无需修复。您应该忽略增加的 CPU 使用率,因为它对实际系统性能没有影响。
变通方法
如果不使用 IPMI 设备,请通过发出以下命令来停止 IPMI 服务:
服务 ipmi 停止
我在某人的博客上发现这篇文章的标题很简单:kipmi0 问题。这个问题听起来和你的一样。该问题可追溯到作为lm_sensors
包的一部分加载的 2 个内核模块的问题。
这些是 2 个内核模块:
变通方法
您可以使用以下命令手动删除这些:
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)
归档时间: |
|
查看次数: |
63879 次 |
最近记录: |