개별 사용자, 시스템 등 각 프로세스의 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

관련 정보