我们有 CentOS 6.4,kipmi0
CPU 显示为 99.8%,内存为 0.0%,平均负载为 1.00。对此我们应该采取什么措施来纠正呢?
答案1
根据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
在我们的系统中,设置该参数后,kipmi0的cpu下降到15%。
你可以试试这个。
要使更改持久,您可以配置 ipmi_si 内核模块的选项。在, ie
中创建一个文件,并添加以下内容: 现在每次将 ipmi_si 内核模块加载到内核中时,都应该自动正确设置该参数。/etc/modprobe.d/
/etc/modprobe.d/ipmi.conf
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
答案2
调试问题
其他系统与该系统相同吗?你必须确定它们是。他们之间一定有一些根本不同的东西。固件?相同的 RPM 版本吗?
lshw
您可以使用、 、等工具dmidecode
,并查看dmesg
日志以获取有关差异和根本原因的线索。
我可以通过在未出现此问题的系统之一和出现此问题的系统上运行此命令来获得已安装 RPM 的良好基线,并比较软件包列表以确保它们都处于相同版本。
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
然后在同一台机器上获取文件并对这两个文件进行 sdiff:
sdiff machine1_rpms.txt machine2_rpms.txt
潜在原因#1
IBM 网站上的技术说明标题为:Kipmi0 可能会显示 Linux 上的 CPU 利用率增加,关于这个问题。根据这个问题你基本上可以忽略这个问题。
问题描述
Linux 中 kipmi0 进程可能会显示 CPU 利用率增加。当 IPMI(智能平台管理接口)设备(例如 BMC(基板管理控制器)或 IMM(集成管理控制器))繁忙或无响应时,利用率可能会增加至 100%。
使固定
无需修复。您应该忽略 CPU 利用率的增加,因为它对实际系统性能没有影响。
解决方法
- 如果使用IPMI设备,请重置BMC或重新启动系统。
如果不使用 IPMI 设备,请通过发出以下命令停止 IPMI 服务:
服务 ipmi 停止
潜在的解决方案#2
我在某人的博客上发现这篇文章,标题很简单:kipmi0问题。这个问题听起来和你的一样。该问题可追溯到作为lm_sensors
包的一部分加载的 2 个内核模块的问题。
这些是 2 个内核模块:
- ipmi_si
- ipmi_msghandler
解决方法
您可以使用以下命令手动删除它们:
rmmod ipmi_msghandler
rmmod ipmi_si
为了使此修复永久有效,您需要通过将它们注释掉来禁用配置文件之一中这些特定内核模块的加载lm_sensors
,如下所示:
# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
lm_sensors
进行这些更改后重新启动:
/etc/init.d/lm_sensors
答案3
ipmi_si.force_kipmid=0
kipmi0 可以通过添加为内核参数在 CentOS 6 上完全禁用
通过突出显示要引导的内核,在 GRUB 引导屏幕上进行测试,按“a”修改参数并附加ipmi_si.force_kipmid=0
通过附加ipmi_si.force_kipmid=0
到相关内核行来使其永久化/boot/grub/grub.conf
注意:在将 ipmi_si 作为单独的内核模块的发行版中,使用 modprobe.d conf 文件更合适。在 CentOS 中,ipmi_si 内置于内核映像中,因此 modprobe 配置不起作用。
答案4
我发现以下内容有助于解决此问题:
ipmitool bmc info
这似乎唤醒了 IPMI,然后它停止使用 100% 的核心。
我还发现以下内容很有帮助:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
同样在过去,我已经能够在某些服务器上通过以下方式解决 100% CPU 使用率的问题:
ipmitool lan print
和
ipmitool bmc reset cold
但根据我最近的经验,上述选项只会导致ipmitool
无响应并坐在那里,导致我Ctrl+C它。
希望这对某人有帮助。