top -p <myPID> -n 1
충분히 넓지 않은 터미널에서 실행하면 CPU 사용률 %가 출력에서 생략됩니다 . 이는 bash 스크립트를 통해 프로세스의 CPU 사용률을 찾으려고 할 때 큰 문제입니다. 스크립트가 실행 중인 터미널의 너비가 충분하지 않으면 스크립트가 작동하지 않기 때문입니다.
ps -oe pcpu,pid,cmd
총 평균 CPU는 제공되지만 실행 중인 활용도는 제공되지 않습니다.
터미널 너비에 의존하지 않는 프로세스의 현재 CPU 사용률을 얻는 데 사용할 수 있는 명령이 있습니까?
답변1
이것시스템 통계 패키지mpstat가 포함되어 있습니다. 달리기
mpstat 2 | awk '{print $11}'
원하는 것과 반대되는 유휴 시간 비율을 제공하므로 mpstat 출력에 대해 몇 가지 작업을 수행해야 할 수도 있습니다.
8 % mpstat 2 | awk '{print $11}'
%idle
100.00
99.50
100.00
100.00
100.00
100.00
내 Slackware 11 시스템에 mpstat가 있지만, 내가 시작할 때까지 내 Arch 시스템에 표시되지 않았습니다.pacman -S sysstat
답변2
스크립트에서 원하는 출력을 얻을 수 있을 만큼 COLUMNS 환경 변수를 높게 설정합니다.
export COLUMNS=100
top -p ...
COLUMNS var를 변경하여 top
다음을 호출할 수도 있습니다.
COLUMNS=100 top -p ...
답변3
f
간단히 키를 사용하여 표시된 열을 조정할 수 있습니다 . 일부 열을 제거하고 CPU%를 추가합니다. 그때 볼 수 있어야 합니다.
답변4
ps u -p <PID>
잘 작동합니다. 다음을 사용해 볼 수도 있습니다 awk
.
pid=16707; ps u -p $pid --no-heading | awk -v pid=${pid} -F" " '{print "CPU usage for "$11": "$3}'