Android
2013.05.07 13:51

CPU사용률은 /proc/stat를 참고

조회 수 27585 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
CPU사용률은 /proc/stat를 참고하면 된다. [root@coco /root]# cat /proc/stat

cpu번호      user모드      nice user모드            system모드           idle 상태
-------------------------------------------------------------------------------
 cpu           1714278               9666                      631901             135528477
 cpu0           842765               5302                      372331               67721763
 cpu1           871513               4364                      259570               67806714

...


CPU사용률로써 부팅후 지금까지 소모된 jiffies의 크기를 나타낸다. 5개의 필드로 구성되어 있으며, 첫번째 필드는 CPU번호, 두번째 필드는 user 모드, 세번째 필드는 low priority(nice상태)의 user모드를 나타낸다. 네번째 필드는 system 모드 마지막은 idle 테스크의 jiffies 소모 값을 나타낸다. 우리가 필요로 하는 값은 두번째, 네번째, 다섯번째 필드의 값으로 이들 값을 이용해서 CPU의 사용율을 얻어올 수 있다.

/proc/stat의 출력내용을 보면 cpu와 cpu0과 같이 뒤에 숫자가 붙은 것과 그렇지 않은 것이 있는데, 숫자가 붙지 않은 것은 (cpu가 여러 개 있을 때)전체 cpu에 대한 jiffies총합의 계산을 보여준다. 숫자가 붙은것들은 개별 cpu에 대한 jiffies값을 보여준다. 위의 리눅스시스템의 경우 단지 하나의 cpu로 이루어져 있음을 짐작할 수 있을 것이다.

만약 CPU의 IDLE상태만을 알고 싶다면 다섯번째 필드값만을 조사하면 될것이다.

이렇게 해서 CPU의 jiffies를 가지고 오긴 했지만 이것만으로는 우리가 원하는 정보를 얻어올순 없다. 실제 우리가 원하는 정보는 전체 CPU사용 jiffies중 idle jiffies를 얻어와야 하고 이것을 다시 백분율로 표시해야 하므로 약간의 가공을 해주어야 한다.

방법은 간단하다. 일정시간 소비된 idel jiffies를 총 소비된 jiffies로 나눠 주면 된다. (idle jiffies)*100 / (idle jiffies + use jiffies + system jiffies + low prio jiffies)


위의 방법을 통하면 cpu의 idle의 백분율 값을 얻어올 수 있다. 일정 시간은 초단위로 하면 되고, 소비된 jiffies를 구해야 함으로 이전의 jiffies값을 가지고 있어야 된다.



cpu 전체값 = (user모드+nice user 모드+system 모드+idle 상태)
user 모드 사용율 = (user 모드)*100 / cpu 전체값
user 모드 사용율 = (user모드 / cpu 전체값) * 100
system 모드 사용율 = (system 모드 / cpu 전체값) * 100


<< 참고 >>
sys% 가 갑자기 치솟는다거나 하는 경우는 무엇을 뜻하는 것일까요?
usr%은 그대로거나 오히려 낮아지고 말이죠

아마도 아래의 경우가 아닐까요?

1.네트웍 트래픽의 증가
2.대용량 화일 입출력 발생
(tar, compress 등의 명령실행)
3.기타 시스템 콜이 발생한 경우

참고
[vmstat man page]
us: 커널이 아닌 프로세스의 시간 (user time, including nice time)
sy: 커널의 사용시간 (system time)
id: 아무런 일을 하지 않는 시간
wa: 입출력 대기 시간
st: 가상머신이 사용하는 시간


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
86 Android [GIT 사용법] Git Tutorial 2011.12.26 94521 0
85 Android adb am 명령어 ; app 실행 및 Intent 전송 2013.08.12 92149 0
84 Android [GIT 사용법] 초보자가 알아두면 좋을 명령어 정리 1 2011.12.26 64761 0
83 Android 안드로이드 키 이벤트 (adb shell로 보내는 법) 2014.01.04 42669 0
82 Android ADB로 스크린 캡쳐하여 저장하는 방법 2013.08.13 40720 0
81 Android adb shell pm 명령어 ; apk 파일 추출 및 인스톨 2013.08.12 39972 0
80 Android adb shell 을 이용한 각종 정보 명령어 2012.09.03 38742 0
79 Android 이클립스(Eclipse)에서 유용한 단축키 일람 1 2013.05.21 37464 0
78 Android Android sdk 번호(Api level)와 버전 정리 2015.08.05 35128 0
77 Android logcat 사용법 2012.04.12 34091 0
76 Android [GIT] git stash 사용하기 2012.10.22 30202 0
75 Android Android Property 사용하기 2012.07.17 27776 0
» Android CPU사용률은 /proc/stat를 참고 2013.05.07 27585 0
73 Android 안드로이드 어플리케이션의 메모리 사용량을 확인하는 방법 2012.09.03 27082 0
72 Android 간단한 Handler, Runnable 사용법 1 2014.12.30 26573 1
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 Next ›
/ 6

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5