화면 너비와 관계없이 현재 CPU 사용률을 찾기 위한 최고의 명령줄 대안은 무엇입니까?

화면 너비와 관계없이 현재 CPU 사용률을 찾기 위한 최고의 명령줄 대안은 무엇입니까?

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}'

관련 정보