Kipmi0 占用100% CPU1核

2 minute read

背景

Kipmi0 占用100%单核,NICE 19,一般没什么影响。

但是也可以临时降低

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us  

降到10%

重启生效的配置,修改模块参数。

Create a file in /etc/modprobe.d/, i.e./etc/modprobe.d/ipmi.conf, and add the following content:  
# Prevent kipmi0 from consuming 100% CPU  
options ipmi_si kipmid_max_busy_us=100  
  
modinfo ipmi_si   
parm:           bt_debug:debug bitmask, 1=enable, 2=messages, 4=states (int)  
parm:           smic_debug:debug bitmask, 1=enable, 2=messages, 4=states (int)  
parm:           kcs_debug:debug bitmask, 1=enable, 2=messages, 4=states (int)  
parm:           hotmod:Add and remove interfaces.  See Documentation/IPMI.txt in the kernel sources for the gory details.  
parm:           trydefaults:Setting this to 'false' will disable the default scan of the KCS and SMIC interface at the standard address (bool)  
parm:           type:Defines the type of each interface, each interface separated by commas.  The types are 'kcs', 'smic', and 'bt'.  For example si_type=kcs,bt will set the first interface to kcs and the second to bt (string)  
parm:           addrs:Sets the memory address of each interface, the addresses separated by commas.  Only use if an interface is in memory.  Otherwise, set it to zero or leave it blank. (array of ulong)  
parm:           ports:Sets the port address of each interface, the addresses separated by commas.  Only use if an interface is a port.  Otherwise, set it to zero or leave it blank. (array of uint)  
parm:           irqs:Sets the interrupt of each interface, the addresses separated by commas.  Only use if an interface has an interrupt.  Otherwise, set it to zero or leave it blank. (array of int)  
parm:           regspacings:The number of bytes between the start address and each successive register used by the interface.  For instance, if the start address is 0xca2 and the spacing is 2, then the second address is at 0xca4.  Defaults to 1. (array of int)  
parm:           regsizes:The size of the specific IPMI register in bytes. This should generally be 1, 2, 4, or 8 for an 8-bit, 16-bit, 32-bit, or 64-bit register.  Use this if you the 8-bit IPMI register has to be read from a larger register. (array of int)  
parm:           regshifts:The amount to shift the data read from the. IPMI register, in bits.  For instance, if the data is read from a 32-bit word and the IPMI data is in bit 8-15, then the shift would be 8 (array of int)  
parm:           slave_addrs:Set the default IPMB slave address for the controller.  Normally this is 0x20, but can be overridden by this parm.  This is an array indexed by interface number. (array of int)  
parm:           force_kipmid:Force the kipmi daemon to be enabled (1) or disabled(0).  Normally the IPMI driver auto-detects this, but the value may be overridden by this parm. (array of int)  
parm:           unload_when_empty:Unload the module if no interfaces are specified or found, default is 1.  Setting to 0 is useful for hot add of devices using hotmod. (int)  
parm:           kipmid_max_busy_us:Max time (in microseconds) to busy-wait for IPMI data before sleeping. 0 (default) means to wait forever. Set to 100-500 if kipmid is using up a lot of CPU time. (array of uint)  

Flag Counter

digoal’s 大量PostgreSQL文章入口