Android
2013.05.07 13:51

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

조회 수 30499 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
416 일반 cmd.exe 쉘 환경변수 추출 및 처리 2014.03.20 11661 0
415 개념 CMLA (Content Management Licensing Administrator) DRM 2012.03.30 15401 0
414 Python collections.counter() 함수 2014.04.30 14098 0
413 일반 Common LDAP Queries 2015.05.13 5988 0
» Android CPU사용률은 /proc/stat를 참고 2013.05.07 30499 0
411 LINUX CR, LF, ^M - vi로 DOS<->UNIX 줄바꿈 전환 2014.07.14 37539 0
410 개념 CSFB와 SVLTE (Circuit Switched Fall-Back & Simultaneous Voice and LTE) 2012.04.23 24220 0
409 일반 CSS 참고 사이트 2012.06.05 15334 0
408 MFC Cstring methods 2009.04.21 54919 0
407 MFC CString 에서 형변환 함수들 총정리 2010.11.29 102707 0
406 MFC CString을 유니코드로 변환 WCHAR에 저장하는 방법 1 2006.04.14 56714 0
405 MFC CTree Ctrl 맴버 요약 2010.06.24 42019 0
404 업무 CTS 테스트 가이드 secret 2015.01.02 0 0
403 C C언어용 문자열 replaceAll 함수 2009.02.09 38317 0
402 C C에서 파일 존재여부 체크 (check file exist) 2019.07.02 18307 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 11 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5