LinuxプロセスのCPU使用率をモニターしたくなることって、結構あります(組み込みだと特に)。そんなとき、topコマンドが便利です。

  •  まず試してみる
topコマンドを実行すると、1秒毎にプロセス状態がモニターできます。

top

しかし、これだと1秒毎に情報がリフレッシュされてしまうので、CPU使用率がどのように変わっていくかを記録することが難しいです。
  • 詳しく見てみる
例えばPID=6661のfirefoxのCPU使用率を100ms毎に10秒間モニターして、ログに出力したいなんて場合、こうします。
$ top -b -d 0.1 -n 100  | grep 6661 > firefox.txt
topコマンドのオプション。
 -b:バッチモード。これを指定しないとファイル出力したときぐちゃぐちゃになります。
 -d:更新間隔(秒)。0.1を指定すると100msになります。(組み込みLinuxだと1秒未満は指定できないみたい)
 -n:回数。100を指定すると100回繰り返します。

topコマンドの出力結果に対してgrepでPID=6661を抽出し、firefox.txtに出力します。

firefox.txtを開くとこんな感じに...。9カラム目がCPU使用率になります。

top-firefox
  • グラフにしてみた
LibreOfficeCalc(エクセルみたいなの)で開くときに区切り文字がスペースのままだと列が揃わないため、複数個のスペースをそれぞれカンマ1つに変換してCSVとしてオープンします。

するとこんな感じに。
calc

(横軸が雑ですが...)グラフにするとこんな感じ。
graph

スポンサードリンク