[linux] Linux에서 단일 프로세스의 CPU 사용량 및 메모리 사용량을 검색 하시겠습니까?

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


답변

프로그램을 시작하고 모니터링

이 양식은 실행 파일을 쉽게 벤치마킹하려는 경우에 유용합니다.

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플래그 상단이 배치 모드로 실행 됨)하거나 -pgrep을 사용하지 않고 플래그를 사용하고 pid를 지정할 수도 있습니다 .