우리는 가상의 “전용”서버에서 실행하고 있습니다. 이론 상으로는 우리가 서버에서 유일한 사람임을 의미해야합니다. 실제로 …. 우리가 아닐 수도 있다고 생각합니다.
기계를 죽이는 것처럼 보이지만 “Steal time”은 71 %입니다.
나는로드에 대한 통계를 가져 가고 있으며이 통계가 내 그래프에 표시되지 않은 것에 실망했습니다. 이를 모니터링 할 수있는 도구가 있습니까?
추가 정보:
우리는 4 개의 코어를 실행하고 있습니다 :
# grep "model name" /proc/cpuinfo | sort -u
model name : Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz
답변
질문은 잘 정의되어 있지만 환경, 현재 모니터링 방법 또는 사용중인 그래프 도구에 대한 많은 정보를 제공하지 않습니다. 그러나 SNMP가 거의 보편적으로 사용된다는 점을 감안할 때 SNMP를 사용하고 있으며 적어도 친숙하다고 가정합니다.
CPU Steal 시간은 현재 snmpd에서 사용할 수 없지만 UCD-SNMP-MIB::extOutput
객체와 exec
명령으로 직접 확장 할 수 있습니다 .
도둑질 시간을 얻는 가장 쉬운 방법은입니다 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.conf
은 1부터 시작하여 인덱싱됩니다. 따라서 하나의 exec 문만있는 경우을 폴링하려고합니다 UCD-SNMP-MIB::extOutput.1
. 이것이 5 번째 exec 문이면 poll UCD-SNMP-MIB::extOutput.5
등을 수행하십시오.
의 숫자 OID는 UCD-SNMP-MIB::extOutput
것입니다 .1.3.6.1.4.1.2021.8.1.101
당신이 될 것 인덱스 1에 있다면 그래서 .1.3.6.1.4.1.2021.8.1.101.1
, 인덱스 5는 것 .1.3.6.1.4.1.2021.8.1.101.5
등
그런 다음 게이지 유형의 SNMPD OID를 0-100 범위로 폴링하는 그래프를 만듭니다. 이것은 당신에게 예쁜 그래프를 줄 것입니다.
답변
sar -u
귀하의 경우에 도움이 될 수 있습니다. sar은 일반적으로 sysstat -package의 일부입니다 .
답변
가장 많이 답한 답변은 훌륭하지만 현재는 제대로 작동하지 않습니다. net-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
여기서 nsExtendOutput1Line
oid는 .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