Linux에서 단일 프로세스의 CPU 및 메모리 사용을 원합니다. PID를 알고 있습니다. 다행히도 ‘watch’명령을 사용하여 1 초마다 가져 와서 CSV에 쓸 수 있기를 바랍니다. Linux 명령 행에서이 정보를 얻는 데 어떤 명령을 사용할 수 있습니까?
답변
ps -p <pid> -o %cpu,%mem,cmd
“cmd”를 사용하지 않아도되지만 디버깅에 도움이 될 수 있습니다.
이것은 프로세스가 실행되고있는 동안 프로세스의 평균 CPU 사용량을 나타냅니다.
답변
카페 답변 의 변형 :
top -p <pid>
이렇게하면 CPU 사용량이 자동으로 새로 고쳐 지므로 모니터링에 좋습니다.
답변
프로세스 이름을 사용하여 결과를 얻을 수 있습니다.
ps -C chrome -o %cpu,%mem,cmd
이 -C
옵션을 사용하면 프로세스 이름을 pid를 몰라도 사용할 수 있습니다.
답변
pidstat를 사용하십시오 (sysstat에서- 링크 참조 ).
예를 들어 5 초마다이 두 프로세스 ID (12345 및 11223)를 모니터링하려면
$ pidstat -h -r -u -v -p 12345,11223 5
답변
ps
명령 (사용하지 않아야 함) :
top
명령 (사용해야 함) :
top
실시간으로 CPU 사용량을 얻는 데 사용 합니다 (현재 짧은 간격).
top -b -n 2 -d 0.2 -p 6962 | tail -1 | awk '{print $9}'
다음과 같이 반향됩니다. 78.6
-b
: 배치 모드-n 2
: 반복 횟수, 다음2
이유로 인해 사용 : 처음 실행할 때 비교할 이전 샘플이 없으므로 이러한 초기 값은 부팅 이후의 백분율입니다.-d 0.2
: 지연 시간 (초, 200ms)-p 6962
: 모니터 -PIDtail -1
: 마지막 행awk '{print $9}'
: 9 번째 열 (CPU 사용량)
답변
프로그램을 시작하고 모니터링
이 양식은 실행 파일을 쉽게 벤치마킹하려는 경우에 유용합니다.
topp() (
$* &>/dev/null &
pid="$!"
trap ':' INT
echo 'CPU MEM'
while sleep 1; do ps --no-headers -o '%cpu,%mem' -p "$pid"; done
kill "$pid"
)
topp ./myprog arg1 arg2
이제 Ctrl + C를 누르면 프로그램이 종료되고 모니터링이 중지됩니다. 샘플 출력 :
CPU MEM
20.0 1.3
35.0 1.3
40.0 1.3
관련 : /unix/554/how-to-monitor-cpu-memory-usage-of-a-single-process
우분투 16.04에서 테스트되었습니다.
답변
top -b
원하는 pid를 사용 하고 grep ( -b
플래그 상단이 배치 모드로 실행 됨)하거나 -p
grep을 사용하지 않고 플래그를 사용하고 pid를 지정할 수도 있습니다 .