私はこれを使って、sa -m
RHEL 7システムの各ユーザーのCPU使用率の詳細を表示します。次の形式で情報を表示します。
oracle 15335 88164.18re 176.77cp 0avio 167603k
root 9640 8294.42re 10.90cp 0avio 33737k
3rdeye 250 0.33re 0.04cp 0avio 28358k
sshd 4 2.11re 0.00cp 0avio 22068k
dbus 2 0.00re 0.00cp 0avio 7600k
smmsp 2 0.00re 0.00cp 0avio 21408k
私はこの分野に関する簡単な情報を提供するこのウェブサイトを見つけました。 (https://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html#comments)
~について- 壁時計分単位の「リアルタイム」 CP- システム時間とユーザー時間の合計(CPU分) K - 1,000単位のCPU時間平均コア使用量
このデータに基づいて各ユーザーのCPU使用率を計算する方法はありますか?
アップデート1:
Alexがユーザー固有のCPU使用率を得るためにtopコマンドに基づくスクリプトを使用することを提案したので、このアップデートを追加します。私はtop -b -n 1 -u $USERNAME | awk 'NR>7 { sum += $9; } END { print sum; }'
ユーザーのCPU使用率を計算するために対応するロジック()を含むスクリプトを使用してきました。しかし、詳しく見ると、スクリプトが正しい値を提供していないようです。私はある程度理由を見つけました。 topを実行すると、CPU使用率の値が表示され、3(デフォルト)秒ごとに更新されます。ところで一番上に上がるたびに初期値が一定のようです。
[root@myserver unix]# top -b -n 1 -u oracle |grep -i "cpu"|head -1
%Cpu(s): 5.6 us, 2.6 sy, 0.0 ni, 79.0 id, 12.6 wa, 0.0 hi, 0.2 si, 0.0 st
[root@myserver unix]# top -b -n 1 -u oracle |grep -i "cpu"|head -1
%Cpu(s): 5.6 us, 2.6 sy, 0.0 ni, 79.0 id, 12.6 wa, 0.0 hi, 0.2 si, 0.0 st
[root@myserver unix]# top -b -n 1 -u oracle |grep -i "cpu"|head -1
%Cpu(s): 5.6 us, 2.6 sy, 0.0 ni, 79.0 id, 12.6 wa, 0.0 hi, 0.2 si, 0.0 st
[root@myserver unix]# top -b -n 1 -u oracle |grep -i "cpu"|head -1
%Cpu(s): 5.6 us, 2.6 sy, 0.0 ni, 79.0 id, 12.6 wa, 0.0 hi, 0.2 si, 0.0 st
ユーザーoracleに対して上位4回を実行しましたが、引き続き同じCPU使用率値が提供されました。 -bおよび-nオプションなしでtopを実行すると、はっきりと見えます。
# top -u oracle
top - 08:47:44 up 3 days, 2:58, 2 users, load average: 2.21, 1.69, 1.42
Tasks: 1084 total, 3 running, 1081 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.6 us, 2.6 sy, 0.0 ni, 79.0 id, 12.6 wa, 0.0 hi, 0.2 si, 0.0 st
これらのCPU使用率の値からどのように開始されるかを確認してください。もちろん、3秒後に更新され、正しい値が表示され始めます。これが、各ユーザーのCPU使用量を決定する方法を変更したい理由です。欠けている部分があれば修正してください。
答え1
他の方法を提案することができます。これはパッケージを通して行われます。システム統計学者(このリンクはアーチ用です)mpstat
などのコマンドを提供しますiostat
。
mpstatの出力:
Linux 4.9.43-1-lts (laptop) 18/08/2017 _x86_64_ (4 CPU)
19:51:50 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
19:51:50 all 2,18 0,03 0,58 0,07 0,00 0,02 0,00 0,00 0,00 97,13
iostatの出力:
Linux 4.9.43-1-lts (laptop) 18/08/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2,18 0,03 0,60 0,07 0,00 97,13
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3,13 28,15 80,47 1029654 2943525