質問: どのプロセスが高いcpu使用率を引き起こしているのかを知るにはどうすればよいですか? solaris仮想マシンで奇妙な問題が発生しています。起動して1〜2時間起動すると、cpu使用率が5秒間で最大100%になり、さらに5秒間は通常に戻り、そのように繰り返されます。再起動するまで-solaris仮想マシンが完全に使用できなくなります。5秒間の100%cpu使用率の繰り返し中に何が起こっているのかを知りたいのですが、システムは5秒間完全に応答しません。マウス/キーボードの割り込みも処理されないため、topまたはprstat。だから私は知りたい: 100%のcpu使用率を引き起こしたプロセスid 100%のcpu使用率の間にプロセスが何をしていたか あなたの提案を提供してください、ありがとう!
回答: 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コマンドを使用して、プロセスアクティビティログプロセスの優先度をリアルタイムに変更する必要がある場合もあります。