在 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