Android
2013.05.07 13:51

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

조회 수 23151 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
198 C# 텍스트 파일에서 읽기/쓰기 2013.08.08 10212 0
197 C# 사용자 정의 이벤트(event) 예제 2013.08.08 8969 0
196 C# LDAP Active Directory 계정에서 사진 얻어오기 2013.08.07 8628 0
195 C# 트레이 아이콘 만들기 2013.08.05 10328 0
194 일반 장치관리자 실행 명령어 2013.08.05 10602 0
193 LINUX shutdown 명령어 2013.07.26 8214 0
192 Android ADB Usage 번역 2013.07.10 10081 0
191 Android repo 명령어 (command) 설명 init sync diff prune forall upload download start status 2013.05.30 17320 0
190 Android 이클립스(Eclipse)에서 유용한 단축키 일람 1 2013.05.21 31964 0
189 Python Python 문자열 관련 함수 2013.05.07 18641 0
» Android CPU사용률은 /proc/stat를 참고 2013.05.07 23151 0
187 LINUX 접속한 사용자 확인 w 명령어 2013.05.02 10464 0
186 Android ADB 에서 cpu 사용률 보기 2013.04.29 17101 0
185 C# Textbox에 숫자만 입력가능하게 설정하기 2013.04.22 18502 0
184 LINUX 사용자 계정 목록 보기 2013.04.22 13339 0
목록
Board Pagination ‹ Prev 1 ... 15 16 17 18 19 20 21 22 23 24 ... 33 Next ›
/ 33

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5