나는 하나의 CPU, bash를 사용하는 우분투 시스템의 전체 CPU 사용량을 계산하려고합니다. 내가 만들고있는 시스템 모니터링 스크립트에 대한 전반적인 CPU 사용률이 필요합니다. 내가 찾은 대안은 다음 코드를 사용하는 것입니다bash를 사용하여 효과적으로 CPU 사용량을 계산하는 방법은 무엇입니까?
top -n 1 | grep "Cpu"
:이 코드
read cpu a b c previdle rest < /proc/stat
prevtotal=$((a+b+c+previdle))
sleep 0.5
read cpu a b c idle rest < /proc/stat
total=$((a+b+c+idle))
CPU=$((100*((total-prevtotal) - (idle-previdle))/(total-prevtotal)))
echo $CPU
문제는 문제는 내가 다음 코드를 사용할 때 CPU 사용률 %가 항상 동일하다는 것이다 그것이 완전히 정확한지 나는 모른다. 몇 가지 질문이 있습니다. 우선 첫 번째 코드가 실패하는 이유는 무엇입니까? 둘째, 두 번째 코드는 신뢰할 수 있습니까? 그렇지 않다면, 시스템의 전반적인 CPU 사용률을 신뢰할 수있는 읽기 위해 어떤 코드를 사용할 수 있습니까? 감사! SYSTAT 패키지로 제공
나는 잘못된 일을하고 있는지 알지 못하지만 내가 할 때 알지 못한다. 해야 할 것; mpstat; "여러 프로세스를 실행중인 경우에도 항상 CPU 사용률에 대해 동일한 값을 얻고 있습니다. – Lynx
이제는 mpstat 명령을 아무 매개 변수없이 실행하면 출력이 엉뚱한 것임을 발견했습니다 ...이 파일은 mpstat 1 1처럼 사용해야합니다 – Lynx