- PR -

実行されている処理を知りたい

1
投稿者投稿内容
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2007-02-23 14:04
お世話になっております。

OSがLinux RedHat9.0のサーバを利用しているのですが、
不定期にCPUが100%近く継続して使用される現象が発生して困っています。
発現から解消されるまでの時間も一定ではありません。(1〜3時間ほど)
通常の使用率は50%前後です。

CPUを使用している原因を特定したいのですが
何か突き止める方法はありませんでしょうか。
(topコマンドは試しました。)
不定期に発現するので、実行中の処理を記録しておく方法もわかると
ありがたいです。

よろしくお願いいたします。
みなと
大ベテラン
会議室デビュー日: 2002/06/14
投稿数: 202
お住まい・勤務地: Q州地方の日本海側
投稿日時: 2007-02-23 14:12
こんにちは

通常の50%というのも高いような気もしますが、それはさておき。

定期的にtopをファイルに蓄積していくシェルスクリプトを書いて
1日ほっといてみてはいかがでしょうか?
sarでもいいとおもいますが。。
psとかも一緒にとると幸せカモ。

1-3時間もタイミングがあるなら、30-60分おきぐらいでよさそうですね。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-23 15:26
こんにちは。
top の -b オプションが好み ( top を走らせ続け、結果はリダイレクトでファイルに保存 ) ですが、出力の量がかなり大きくなるので、更新間隔を長めにした方が良いと思います。
yoshika
常連さん
会議室デビュー日: 2005/10/31
投稿数: 28
投稿日時: 2007-02-28 19:15
ご回答ありがとうございます。

topコマンドには実行されているすべての処理が表示されるのでしょうか?
それ以外の何かが動いているのではないかという疑問が拭い去れないのです。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-28 20:16
引用:
yoshikaさんの書き込み (2007-02-28 19:15) より:
topコマンドには実行されているすべての処理が表示されるのでしょうか?
それ以外の何かが動いているのではないかという疑問が拭い去れないのです。


topは、-b オプションをつけるなら、 ps の -e と同じように、全部のプロセスを出してくれますよ。
尤も、短時間で死んでしまうプロセスがリソースを食い潰している場合、top の更新間隔によってはすり抜けてしまう可能性はありますね。
( 費やしたCPU時間は、その親や init で累積 )

一度試験的に top を流してみて、たまるログの量が多すぎるようなら、vmstat や uptime の結果が高負荷を示していることをトリガーに、top を起動するようなスクリプトを組むのも良いでしょう。


[ メッセージ編集済み 編集者: angel 編集日時 2007-02-28 20:17 ]
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2007-02-28 20:46
こんばんは

当該時間に syslogには何か出力されていないのでしょうか?

OSだけでは情報が足りないと思いませんか?
・サーバはどのような場所に設置されているか
 インターネットに直接繋がっている=DoS攻撃の可能性は?
・立ち上げているサービスは?
 WEB=access_log/error_logを見ましょう
 DB=アプリなどで重たいクエリを流していないですか?
 MAIL=踏み台にされていないですか?
 ssh=rootやユーザのパスワードが簡単だったりしませんか?
 >ウィルスやバックドアが仕掛けられていないですか?
・搭載メモリは?CPUは?swapは?接続ユーザ数は?

今後のためにも、まずはログから調べるクセをつけたほうがいいと思いますョ。
1

スキルアップ/キャリアアップ(JOB@IT)