본문 바로가기

Programming/Linux_Kernel

linux 평균 cpu 점유률 구하기

top -d 0.1 -n 10 | grep Cpu

에서 나온 정보중

# top -d 0.1 -n 10 | grep Cpu

Unknown HZ value! (2810100) Assume 100.

Cpu(s):    0.0% us,    0.0% sy,    0.0% ni,   99.9% id,    0.1% wa,    0.0% hi,    0.0% si,    0.0% st

Cpu(s):   11.6% us,   14.5% sy,    0.0% ni,   72.5% id,    0.0% wa,    1.4% hi,    0.0% si,    0.0% st

Cpu(s):   25.8% us,   35.5% sy,    0.0% ni,   32.3% id,    0.0% wa,    6.5% hi,    0.0% si,    0.0% st

Cpu(s):   10.0% us,   53.3% sy,    0.0% ni,   33.3% id,    0.0% wa,    3.3% hi,    0.0% si,    0.0% st

Cpu(s):   15.4% us,   15.4% sy,    0.0% ni,   66.2% id,    0.0% wa,    1.5% hi,    1.5% si,    0.0% st

Cpu(s):   13.6% us,   18.6% sy,    0.0% ni,   64.4% id,    0.0% wa,    3.4% hi,    0.0% si,    0.0% st

Cpu(s):   10.3% us,   24.1% sy,    0.0% ni,   63.8% id,    0.0% wa,    1.7% hi,    0.0% si,    0.0% st

Cpu(s):    3.4% us,   18.0% sy,    0.0% ni,   76.4% id,    0.0% wa,    2.2% hi,    0.0% si,    0.0% st

Cpu(s):   19.4% us,   45.2% sy,    0.0% ni,   32.3% id,    0.0% wa,    3.2% hi,    0.0% si,    0.0% st

Cpu(s):   21.9% us,   40.6% sy,    0.0% ni,   31.2% id,    0.0% wa,    6.2% hi,    0.0% si,    0.0% st

 

4번째 값인 cpu idle 값을 100 에서 빼주시면 현재 cpu 사용률을 알 수 있습니다.

 

참고로 -d [초] 는 정보 수집 시간입니다.

이 시간을 조절해서 평균 cpu 값의 갱신 주기를 설정하실 수 있습니다.

-n 은 정보 수집 횟수 입니다.

 

리눅스에서 cpu 점유율 정보는 /proc/stat 의 정보를 통해서 알 수 있는데

이 값을 바로 사용해서 값이 나오는 것이 아니라 일정시간 차를 두고 값의 차를 이용해서 cpu 점유율을 알 수 있는 방식입니다.

따라서 top 으로 조회할때 첫번째 값은 비정상적인 cpu 값이 나오게 됩니다.

- 추가 정보 -

top 의 각 필드값에 대한 내용 :
http://weezzle.net/1360

top 명령어 옵션 정리 :
http://guys0823.egloos.com/1168534

cpu 사용율 모니터링 프로그램 소스 1 :
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/QOS/SMS/Cpu_Usage

cpu 사용율 모니터링 프로그램 소스 2 :
http://kldp.org/node/79350