Solaris仮想マシンで奇妙な問題が発生しています。起動して1〜2時間起動すると、CPU使用率が5秒間で最大100%になり、さらに5秒間は通常に戻り、そのように繰り返されます。再起動するまで-Solaris仮想マシンが完全に使用できなくなります。
5秒間の100%CPU使用率の繰り返し中に何が起こっているのかを知りたいのですが、システムは5秒間完全に応答しません。マウス/キーボードの割り込みも処理されないため、top
またはprstat
。
だから私は知りたい:
あなたの提案を提供してください、ありがとう!
Topをバッチモードで実行してみることができます。
top -b -n100 > top.log
ここで、-n100は100回の反復を表します。
もう1つの方法は、適切な引数を指定してpsを使用することです(これらはLinuxからのものであり、Solarisのpsのマニュアルページを参照する必要がある場合があります)。便宜上、コマンドはBashスクリプトに埋め込まれています。
#!/bin/bash
while true ; do
ps -eo pcpu,pmem,pid,ppid,args >> process.log
sleep 1
done
Nice
コマンドを使用して、プロセスアクティビティログプロセスの優先度をリアルタイムに変更する必要がある場合もあります。
特に仮想化環境で実行している場合は、原因がプロセスであると直接想定しないでください。
これは、ハイパーバイザーの問題またはカーネル関連の問題である可能性もあります。
Dtraceを使用して、これらのCPU使用率が高い期間にカーネルが何をしているかを把握します。
DTraceToolkit cputimes および modcalls.d コマンドは良いスタートです。
ホストOSもSolarisの場合、dtraceはCPU負荷の発生元を特定するのにも役立ちます。