도난 시간(st)을 모니터링하는 도구

도난 시간(st)을 모니터링하는 도구

우리는 가상의 "전용" 서버에서 실행되는데, 이는 이론적으로 우리가 서버에 있는 유일한 서버임을 의미합니다. 사실... 내 생각에는 아마 그렇지 않을 것 같아요.

여기에 이미지 설명을 입력하세요.

머신을 죽이는 것처럼 보이지만 "훔치는 시간"은 71%입니다.

로드에 대한 통계를 작성하고 있는데 실망스럽게도 통계가 그래프에 표시되지 않습니다. 이를 모니터링하는 데 도움이 될 수 있는 도구가 있나요?


추가 정보:

우리는 4개의 코어를 실행하고 있습니다. 모델:

# grep "model name" /proc/cpuinfo | sort -u
model name  : Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz

답변1

귀하의 질문은 잘 정의되어 있지만 환경, ​​현재 모니터링 방법 또는 사용 중인 그래픽 도구에 대한 많은 정보를 제공하지 않습니다. 그러나 일반적인 SNMP가 사용되는 방식을 고려하면 여러분이 이를 사용하고 있고 적어도 어느 정도 익숙하다고 가정하겠습니다.

(내가 아는 한) 현재 snmpd에서는 CPU Steal time을 사용할 수 없지만 개체 UCD-SNMP-MIB::extOutputexec명령을 사용하여 직접 확장할 수 있습니다.

도난당한 시간을 얻는 가장 쉬운 방법은 iostat다음 구성을 사용하는 것입니다.오직훔치는 시간:

$ iostat -c | awk 'NR==4 {print $5}'
0.00

따라서 snmpd.conf에 다음을 추가하십시오.

exec cpu_steal_time /usr/bin/iostat -c | /usr/bin/awk 'NR==4 {print $5}'

(또는 명령을 래퍼 스크립트에 넣고 에서 래퍼를 호출할 수도 있습니다 snmpd.conf.)

exec호출 의 인덱스는 snmpd.conf1부터 시작합니다. 따라서 exec 문이 하나만 있는 경우 poll 이 필요합니다 UCD-SNMP-MIB::extOutput.1. 이것이 다섯 번째 exec 문인 경우 여론 조사 UCD-SNMP-MIB::extOutput.5등입니다.

숫자 OID는 인덱스 1에 있으면 인덱스 5 등 UCD-SNMP-MIB::extOutput입니다 ..1.3.6.1.4.1.2021.8.1.101.1.3.6.1.4.1.2021.8.1.101.1.1.3.6.1.4.1.2021.8.1.101.5

그런 다음 0~100 범위의 게이지 유형의 SNMPD OID를 폴링하는 그래프를 생성합니다. 그러면 멋진 그래프가 나올 것입니다.

답변2

sar -u귀하의 경우에는 도움이 될 수 있습니다. sar는 보통시스템 상태-팩.

답변3

가장 많은 찬성표를 얻은 답변은 훌륭하지만 아직 완전히 작동하지는 않습니다.네트워크SNMP호출 중에 파이프가 손실되었으므로 exec다음과 같아야 합니다.

extend-sh cpu_steal_time /usr/bin/iostat -c 1 1 | /usr/bin/awk '!/%user|Linux|^$/ {print $5}'

결과는 아래와 같습니다 nsExtendOutput1Table.

# snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendOutput1Table
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."cpu_steal_time" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."cpu_steal_time" = INTEGER: 0

nsExtendOutput1Lineoid가 .1.3.6.1.4.1.8072.1.3.2.3.1.1 인 경우 :

snmpwalk localhost .1.3.6.1.4.1.8072.1.3.2.3.1.1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60

관련 정보