web-dev-qa-db-ja.com

LinuxマシンでのユーザーごとのCPU使用率のグラフ化

次の状況をグラフ化します(グラフィック出力は素晴らしいです。つまり、.pngファイルです)。ユーザーA、B、Cがいます。すべてのユーザーが同時にCPUを集中的に使用するタスクを実行するように、リソースを制限しています。これらのプロセスは、CPUの25%、25%、および50%を使用します。 topを使用してリアルタイムの統計情報を取得できることはわかっていますが、それらの処理方法がわかりません。私は巨大なtop manページを検索しましたが、グラフ化できるデータを出力することについてはあまり知りませんでした。理想的には、グラフにはおそらく30秒のスパンが表示されます。これを達成する方法はありますか?

7
mart1n

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

結果は次のとおりです。

enter image description here

4
quanta

tloadコマンドは、ASCIIグラフを介して平均システム負荷を図で表したものです。このコマンドを使用して、端末にグラフを表示できます。コマンドの構文は次のとおりです。

tload [options] [terminal]

このコマンドの引数として端末が指定されていない場合、デフォルトでは現在の端末にグラフが出力されます。したがって、このコマンドの最も単純な形式は次のとおりです。

$ tload
7
pabloab

おそらく、collectdを使用して 利用可能なプラグイン ?はい、リストされているものはどれもあなたが望んでいることを正確に実行しませんが、一方で、それらは変更するのが非常に簡単で、たとえばprocessesプラグインから始めて、そこから作業を始めることができると思います。

2

sarsadfを試して、簡単にグラフ化できるようにデータを収集して準備してください。 http://sebastien.godard.pagesperso-orange.fr/documentation.html

1
Jeremy