获取每个进程的单独用户、系统等 CPU 使用情况

获取每个进程的单独用户、系统等 CPU 使用情况

在 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

相关内容