Linux

在 Linux 機器上繪製每個使用者的 CPU 使用情況

  • March 20, 2014

我想繪製圖形(圖形輸出會很好,即 .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

結果如下:

在此處輸入圖像描述

引用自:https://serverfault.com/questions/395801