Linux
在 Linux 機器上繪製每個使用者的 CPU 使用情況
我想繪製圖形(圖形輸出會很好,即 .png 文件)以下情況:我有使用者 A、B 和 C。我限制他們的資源,以便當所有使用者同時執行 CPU 密集型任務時,這些程序將使用 25%、25% 和 50% 的 CPU。我知道我可以使用實時統計數據,
top
但不知道如何處理它們。我已經搜尋了巨大的top
手冊頁,但沒有找到關於輸出可繪製數據的主題。理想情況下,圖表將顯示大約 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
結果如下: