· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
proc 나 snmp 의 값을 이용하여, cpu counter 를 구하는 공식



1. Count 방식으로 CPU를 측정해야 하는 이유

  • Linux의 경우 snmp에서 보여주는 CPU 사용량은 부팅시 부터의 평균값이므로 성능 측정시 고려대상이 안됨.
  • 보통 Linux 의 경우 cronjob 에 의한 결과물을 이용하여 guage 로 cpu usage 를 그리는 경우가 많음
  • guage 값은 rrd database 를 update 할 당시의 값이므로, 이전값을 업데이트 하는 순간 부터 현재값을 업데이트 하는 시간사이의 사용률은 전혀 반영되지 못함.

2. 해결방법

  • UCD-SNMP-MIB (.1.3.6.1.4.1.2021) 의 CPU 관련 Counter 를 이용하여 값을 구함
    • user => UCD-SNMP-MIB::ssCpuRawUser.0
    • nice => UCD-SNMP-MIB::ssCpuRawNice.0
    • sys => UCD-SNMP-MIB::ssCpuRawSystem.0
    • idle => UCD-SNMP-MIB::ssCpuRawIdle.0
    • wait => UCD-SNMP-MIB::ssCpuRawWait.0
    • intr => UCD-SNMP-MIB::ssCpuRawInterrupt.0
    • irqt => UCD-SNMP-MIB::ssCpuRawSoftIRQ.0

  • counter 방식이기 때문에 각 값의 2 지점(시간상) 의 차이를 구하도록 한다.
    • 예) user = userpost - userpref

  • scale = 100.0 / (user + nice + sys + idle + wait + intr + irqt)
  • user = (user + nice) * scale
  • sys = (sys + intr + irqt) * scale
  • idle *= scale
  • idwait *= scale

3. 참고

  • linux kernel 2.4 에서는 또는 (다른 OS 에서는) IOWAIT/Interrupt/SoftIRQ 에 대한 Counter 가 없을 수도 있으므로 예외 처리를 염두에 두어야 한다.


ID
Password
Join
With clothes the new are best, with friends the old are best.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2011-06-01 13:08:01
Processing time 0.0075 sec