IT story

Linux에서 전체 CPU 사용량 (예 : 57 %)을 얻는 방법

hot-time 2020. 5. 24. 10:53
반응형

Linux에서 전체 CPU 사용량 (예 : 57 %)을 얻는 방법


예를 들어 bash를 사용하여 시스템 CPU 사용량을 가져 와서 백분율로 표시하는 방법이 궁금합니다.

샘플 출력 :

57%

코어가 둘 이상인 경우 평균 백분율을 계산할 수 있으면 좋을 것입니다.


보세요 cat /proc/stat

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

편집 복사하여 붙여 넣기 전에 또는 중요한 작업에 사용하기 전에 주석을 읽으십시오. 이것은 테스트되거나 사용되지 않았으며, 유틸리티를 설치하지 않으려는 사람들이나 배포판에서 작동하는 것을 생각합니다. 어떤 사람들은 당신이 무엇이든 "설치 설치"할 수 있다고 생각합니다.

참고 : 이것은 현재 CPU 사용량이 아니라 시스템 부팅 이후 모든 코어의 전체 CPU 사용량입니다. 이것은 현재 CPU 사용량과 매우 다를 수 있습니다. 현재 값을 얻으려면 상단 (또는 유사한 도구)을 사용해야합니다.


당신은 시도 할 수 있습니다:

top -bn1 | grep "Cpu(s)" | \
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
           awk '{print 100 - $1"%"}'

패키지 mpstat에서 시도sysstat

> sudo apt-get install sysstat
Linux 3.0.0-13-generic (ws025)  02/10/2012  _x86_64_    (2 CPU)  

03:33:26 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
03:33:26 PM  all    2.39    0.04    0.19    0.34    0.00    0.01    0.00    0.00   97.03

그런 다음 일부 cut또는 grep필요한 정보를 구문 분석하십시오.

mpstat | grep -A 5 "%idle" | tail -n 1 | awk -F " " '{print 100 -  $ 12}'a

Peter Liljenberg의 아이디어에서 영감을 얻은 내 솔루션으로 실제 응답을 던질 수도 있습니다.

$ mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12"%" }'
0.75%

이것은 awk12 번째 필드 (유휴)에서 100을 빼고 그 뒤에 백분율 기호를 인쇄하는 데 사용 됩니다. awk12 번째 필드에 숫자와 점만있는 줄 ( $12 ~ /[0-9]+/)에 대해서만이 작업을 수행합니다 .


편집 : 다른 사용자의 회신에서 % idle이 필드 11 대신 필드 12라는 것을 알았습니다. awk가 변수 % idle 필드를 설명하도록 업데이트되었습니다.

원하는 출력을 얻을 수 있습니다.

mpstat | awk '$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { print 100 - $field }'

간단한 정수 반올림을 원하면 printf를 사용할 수 있습니다.

mpstat | awk '$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { printf("%d%%",100 - $field) }'

참고 URL : https://stackoverflow.com/questions/9229333/how-to-get-overall-cpu-usage-eg-57-on-linux

반응형