kipmi0进程CPU占用率的问题
支持 IPMI 的服务器主板上运行 Linux,有的时候经常容易出现 top
命令列表中显示 kipmi0
进程的 CPU 占用接近 100%,禁用开机加载 IPMI 驱动才不会出现。
IPMI 驱动 CPU 占用说明
kipmi 导致的 CPU 使用增长是很常见的,这个硬件设备接口不是中断设备,所以驱动必须轮询设备的状态和消息。这个轮询显示成一个繁忙的CPU。
kipmi内核线程的优先级非常低(一般为 19),所以不会影响系统中的其他进程。甚至当轮询进入死循环(通常是它认为 BMC 有活跃事件需要它处理),它仍然会在任何进程需要CPU资源时放弃占用资源。
CPU通常视 kipmi0
内核线程为 IDLE 时间,kipmi0在没有其他任务运行时运行,并且是系统最低优先级的进程。
降低 CPU 占用的方法
可以通过以下方法使得 kipmi0
内核线程只使用 10% 的 CPU:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
如果想使此改动永久生效,那可以修改 ipmi_si
内核模块的加载参数,例如增加 /etc/modprobe.d/ipmi.conf
配置文件:
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100