top 명령이 초당 CPU 사용량을 계산하도록 하려면 어떻게 해야 합니까?

top 명령이 초당 CPU 사용량을 계산하도록 하려면 어떻게 해야 합니까?

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}')]"%"

이 명령은 다음 결과를 구문 분석합니다.vmstat1초 동안 지연한 다음 사용 가능한 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)

인용하다:

관련 정보