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%
이것은 awk
12 번째 필드 (유휴)에서 100을 빼고 그 뒤에 백분율 기호를 인쇄하는 데 사용 됩니다. awk
12 번째 필드에 숫자와 점만있는 줄 ( $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
'IT story' 카테고리의 다른 글
메모장 ++ 텍스트 편집기에서 배경색을 변경하는 방법은 무엇입니까? (0) | 2020.05.24 |
---|---|
항상 android : configChanges =“keyboardHidden | orientation”을 사용하지 않는 이유는 무엇입니까? (0) | 2020.05.24 |
서블릿은 무엇입니까 (0) | 2020.05.24 |
서비스로서의 스프링 부트 어플리케이션 (0) | 2020.05.24 |
PHP에서 "include"와 "require"의 차이점 (0) | 2020.05.24 |