人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ある時間帯において、 linux でCPUの使用率が以上に高くなりました。
その時点で「どのプロセスが高負荷をかけたのか?」を知る方法はありますか?

尚、 CPU使用率は top コマンドの load average を指します。
高負荷状態の時に top コマンドが叩ければ良いのですが、今回は過ぎ去った時間帯での話です。

●質問者: 匿名質問者
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 匿名回答1号

監視の仕組みを何も入れてなければ知ることはできないですね。
昔似たような経験をしたのですが、その際はHP社の監視製品がデータセンター側でインストールされていて、topの出力に似たプロセス実行状態の情報が定期的に取得されていたので、過去に振り返って「どのプロセスが高負荷をかけたのか?」を知ることができました。ダメ元ですが、監視の仕組みを確認してみるのがお勧めです。


2 ● 匿名回答2号
ベストアンサー

sysstatに含まれるpidstatはどうでしょう。
http://sebastien.godard.pagesperso-orange.fr/

一過性の対応であれば
nohup pidstat 10 > hoge.log &
みたいな感じで10秒ごとに監視させるようにし、
問題の負荷上昇が起きたらその時間のログを洗えば割り出せると思います。

pidstat以外にもsysstatデーモンの監視系は洗い出しに使えるものがあるかもしれませんので、
試してみてはいかがでしょうか。

たいていのディストリでパッケージとして登録されている筈です。


匿名回答2号さんのコメント
質問の意図を含み取れてなかったかもしれません。つまり、監視の仕組みを入れてないのであれば、過ぎ去った(もう無くなったプロセス)情報は引き出せません。 ちなみに当方の経験では仮想マシンサービスのホスト側の定期バックアップでiowaitが上がり、従ってidleが下がるということがありました。cronやデーモンに心当たりがなければ、その線(iowait上がり)も頭の片隅に置いてみてください。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ