さくらの専用サーバ、LinuxOSにおいてBMCのリセットを実施後、[kipmiN]スレッドがCPUリソースを大きく使用し、ロードアベレージが上昇する場合があります。
※ psコマンド等の表示名はkipmi0のようになります。
※ kipmiNスレッドの優先度は低く設定されていますので、サーバーのレスポンスには影響を与えません。
※ kipmi以外にサーバーのロードが少ない場合、CPU使用率がほぼ100%となります。
※ BMCのリセットはリモートKVMに接続できない、リモートKVMのコンソールが
描画されないといったお問い合わせをいただいた際に弊社にて実施させて
いただくことがある操作です。
事象発生時の表示例
topコマンド
top - 13:31:57 up 6 days, 19:05, 2 users, load average: 0.99, 0.97, 0.90 Tasks: 130 total, 2 running, 128 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 25.0%sy, 0.0%ni, 75.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 49403764k total, 666480k used, 48737284k free, 118000k buffers Swap: 2047992k total, 0k used, 2047992k free, 130640k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 77 root 39 19 0 0 0 R 100.0 0.0 53:09.63 kipmi0 1 root 20 0 19356 1544 1224 S 0.0 0.0 0:00.86 init <以下略>
load averageが継続して1に近い値となります。
%CPUがほぼ100%になります。
※ この例は4コアCPU搭載サーバーのアイドル状態です。
top - 13:35:39 up 6 days, 19:09, 2 users, load average: 2.61, 1.40, 1.05 Tasks: 135 total, 6 running, 129 sleeping, 0 stopped, 0 zombie Cpu(s):100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 49403764k total, 796672k used, 48607092k free, 120156k buffers Swap: 2047992k total, 0k used, 2047992k free, 252572k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12067 root 20 0 6512 188 104 R 100.0 0.0 0:31.43 stress 12065 root 20 0 6512 188 104 R 99.8 0.0 0:31.28 stress 12066 root 20 0 6512 188 104 R 99.8 0.0 0:31.42 stress 12068 root 20 0 6512 188 104 R 98.5 0.0 0:30.86 stress 77 root 39 19 0 0 0 R 1.3 0.0 62:24.89 kipmi0 <以下略>
※ 他のプロセスが稼働している際にはkipmiのCPU使用率は下がります。
ps auxwwコマンド
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19356 1544 ? Ss Jun27 0:00 /sbin/init <略> root 77 0.5 0.0 0 0 ? RN Jun27 54:14 [kipmi0] <以下略>
STATがRNの場合、プロセスが稼働中です。
問題が発生していない場合はほぼ全ての時間SNとなりますのでRNが継続する場合 kipmiによる負荷上昇発生の疑いがあります。
ここでの%CPUはプロセス生存期間中の実行時間の割合を示すものです。
上記の現象が確認された場合、以下の操作で解消することが可能です。 なお、以下の操作の他、サーバーの再起動を行うことでも解消します。
操作手順
以下の例はCentOS6、root権限にて実行した例となります。
必要に応じてsuやsudoを実行し、root権限での操作を行う必要があります。
1ipmievdの停止
ipmievdが稼働している場合は停止します。
# /etc/init.d/ipmievd status ipmievd (pid XXXXX) is running... # /etc/init.d/ipmievd stop Shutting down ipmievd: [ OK ]
※ ipmievdはipmiのイベントをシステムイベントログやsyslogに出力するための
デーモンです。必要に応じて対応完了後に起動してください。
# /etc/init.d/ipmievd start
2モジュールのアンロード
ipmi_si,ipmi_devintfが読み込まれている場合はアンロードします。# lsmod |grep ipmi ipmi_devintf 6587 2 ipmi_si 30960 1 ipmi_msghandler 26634 2 ipmi_devintf,ipmi_si # modprobe -r ipmi_si # modprobe -r ipmi_devintf
3モジュールのロード
ipmi関連のモジュールをロードします。
# modprobe ipmi_devintf # modprobe ipmi_si
※ 一部のOS、バージョンではipmi関連モジュールがカーネルに組込まれています。
以下のように表示される場合はロード不要です。
FATAL: Module ipmi_si not found.
4ipmitoolコマンドを実行します。
# ipmitool bmc info
※ 上記のbmc infoオプションは情報表示用のコマンドになります。
サーバーの設定などを変更するものではありません。
※ 事象が解消されるとコマンドの実行直後からkipmiスレッドのCPU利用率が低下します。
5対応前にipmievdが稼働していた場合は起動します。
/etc/init.d/ipmievd start
なお、一旦解消した後に再度発生するような場合は 2分程度時間を置いてから再度上記の手順を実施ください。
事象解消時の表示例
topコマンド
top - 15:11:50 up 0 min, 1 user, load average: 0.28, 0.06, 0.02 Tasks: 128 total, 2 running, 126 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.5%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 49403764k total, 509120k used, 48894644k free, 91896k buffers Swap: 2047992k total, 0k used, 2047992k free, 34100k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 77 root 39 19 0 0 0 S 0.3 0.0 0:00.23 kipmi0 1 root 20 0 19352 1532 1224 S 0.0 0.0 0:00.86 init <以下略>
kipmiは定期的に立ち上がりますが%CPUの異常上昇はありません。
ps auxwwコマンド
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.5 0.0 19352 1532 ? Ss 15:11 0:00 /sbin/init <略> root 77 0.3 0.0 0 0 ? SN 15:11 0:00 [kipmi0] <以下略>
STATはSNとなります。
以上で操作は完了です。