
Unix または Unix シリーズのシステムで、プロセスごとの CPU 使用率(ユーザー、システム、その他の時間カテゴリに分けて)をどのように確認できますか?top
マシン全体または各コアの全体的な「sy」、「us」、「wa」などを表示しますが、各プロセスについてこれらの統計を表示する方法を示すマニュアルには何も表示されません。
説明すると...上段は次のとおりです。
top - 18:11:58 up 9 days, 6:41, 17 users, load average: 2.42, 2.38, 2.47
Tasks: 2642 total, 4 running, 2638 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.9 us, 0.8 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 26413387+total, 26355763+used, 576240 free, 233544 buffers
KiB Swap: 8921084 total, 8920140 used, 944 free. 14931166+cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
63209 postgres 20 0 0.101t 0.012t 0.012t R 100.0 5.0 389:44.92 postgres
62356 postgres 20 0 0.101t 922336 886508 R 100.0 0.3 10:25.82 postgres
2139 rabbitmq 20 0 9817.9m 5.334g 2968 S 10.4 2.1 1848:43 beam.
たとえば、次の内容を見たいと思います (%CPU(sy) と %CPU(us) を参照)。
top - 18:11:58 up 9 days, 6:41, 17 users, load average: 2.42, 2.38, 2.47
Tasks: 2642 total, 4 running, 2638 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.9 us, 0.8 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 26413387+total, 26355763+used, 576240 free, 233544 buffers
KiB Swap: 8921084 total, 8920140 used, 944 free. 14931166+cached Mem
PID USER PR NI VIRT RES SHR S %CPU(us) %CPU(sy) %MEM TIME+ COMMAND
63209 postgres 20 0 0.101t 0.012t 0.012t R 100.0 1.0 5.0 389:44.92 postgres
62356 postgres 20 0 0.101t 922336 886508 R 100.0 0.4 0.3 10:25.82 postgres
2139 rabbitmq 20 0 9817.9m 5.334g 2968 S 10.4 0.2 2.1 1848:43 beam.
答え1
次のコマンドを使用して、プロセスに関する必要な統計を取得できます。
pidstat -u -p <PID>
例えば
pidstat -u -p 2345