次の状況をグラフ化します(グラフィック出力は素晴らしいです。つまり、.pngファイルです)。ユーザーA、B、Cがいます。すべてのユーザーが同時にCPUを集中的に使用するタスクを実行するように、リソースを制限しています。これらのプロセスは、CPUの25%、25%、および50%を使用します。 top
を使用してリアルタイムの統計情報を取得できることはわかっていますが、それらの処理方法がわかりません。私は巨大なtop
manページを検索しましたが、グラフ化できるデータを出力することについてはあまり知りませんでした。理想的には、グラフにはおそらく30秒のスパンが表示されます。これを達成する方法はありますか?
Topを使用してリアルタイムの統計情報を取得できることはわかっていますが、どうすればよいかわかりません
バッチモードが役立つ場合があります。
-b : Batch mode operation
Starts top in ’Batch mode’, which could be useful for sending output from top to other programs or
to a file. In this mode, top will not accept input and runs until the iterations limit you’ve set
with the ’-n’ command-line option or until killed.
例えば:
$ top -b -n 1 -u <user> | awk 'NR > 7 { sum += $9 } END { print sum }'
Ganglia Gmetric を使用して、このグラフをプロットできます。
cpu_per_user_gmetric.sh
#!/bin/bash
USERS="a b c"
for user in $USERS; do
/usr/bin/gmetric --name CPU_per_"$user"_user --value `top -b -n 1 -u $user | awk 'NR>7 { sum += $9; } END { print sum; }'` --type uint8 --unit Percent
done
crontab -l
* * * * * /path/to/cpu_per_user_gmetric.sh
結果は次のとおりです。
tload
コマンドは、ASCIIグラフを介して平均システム負荷を図で表したものです。このコマンドを使用して、端末にグラフを表示できます。コマンドの構文は次のとおりです。
tload [options] [terminal]
このコマンドの引数として端末が指定されていない場合、デフォルトでは現在の端末にグラフが出力されます。したがって、このコマンドの最も単純な形式は次のとおりです。
$ tload
おそらく、collectd
を使用して 利用可能なプラグイン ?はい、リストされているものはどれもあなたが望んでいることを正確に実行しませんが、一方で、それらは変更するのが非常に簡単で、たとえばprocesses
プラグインから始めて、そこから作業を始めることができると思います。
sar
とsadf
を試して、簡単にグラフ化できるようにデータを収集して準備してください。 http://sebastien.godard.pagesperso-orange.fr/documentation.html