top
나는 솔라리스 모드에서 via를 사용하고 top -d 1
있는데 내 프로세스 중 하나가 CPU의 약 45%를 사용하고 있는 것으로 나타났습니다.
질문:
- 내가 이것을 사용하고 있다는 것은
-d 1
프로세스가 초당 코어의 약 절반을 사용한다는 의미입니까? - 그렇지 않다면 초당 CPU 사용량을 어떻게 계산할 수 있습니까?
답변1
애플리케이션에 대해 표시되는 사용량은 45%
CPU의 하나의 코어 사용량일 가능성이 높으며, 이것이 열의 숫자 합계가 이상인 이유 %CPU
입니다 100%
.
초당 시스템의 총 CPU 사용량을 알고 싶다면 id
출력 속성(IDLE)을 사용할 수 있습니다 top
. 이를 코어 수( nproc --all
)로 나누면 현재 CPU 사용량을 얻을 수 있습니다.
top -bn2 | grep '%Cpu' | tail -1 | grep -P '(....|...) id,' | awk -v cores=$(nproc --all) '{print "CPU Usage: " ($8/cores) "%"}'
총 CPU 사용량을 얻는 몇 가지 다른 방법:
가상 머신 상태
echo "CPU Usage: "$[100-$(vmstat 1 2 | tail -1 | awk '{print $15}')]"%"
이 명령은 다음 결과를 구문 분석합니다.vmstat
1초 동안 지연한 다음 사용 가능한 CPU 공간을 빼서 100
현재 사용 중인 공간의 양을 구합니다.
/프로세스/통계
cat /proc/stat | grep cpu | tail -1 | awk '{print "CPU Usage: " ($5*100)/($2+$3+$4+$5+$6+$7+$8+$9+$10) "%"}'
관심 있는 정보를 분석하기 위해 다음 계산을 사용합니다.
Average idle time (%) = (idle * 100) / (user + nice + system + idle + iowait + irq + softirq + steal + guest + guest_nice)
인용하다: