Programming/Linux

/proc/stat, /proc/[pid]/stat 설명

라우드니스 2013. 3. 6. 21:18

/proc/stat

 

그림 1 Android /proc/stat

명령어: cat /proc/stat

나오는 결과는 컴퓨터 기동 이후의 누적 시간이므로 usage를 나타내기 위해서는 일정 간격을 두고 측정해야 한다.

 

/proc/stat 호출 시의 형식

Cpu    user    system    nice    idle    wait    hi    si    zero

  • CPU: CPU core의 숫자.
  • User: user mode에서의 실행 시간
  • System: system mode에서의 실행 시간
  • Nice: 낮은 권한의 user mode에서의 실행 시간
  • Idle: I/O완료가 아닌 대기 시
  • Wait: I/O 완료 대기 시간
  • Hi: Hard Interrupt(IRQ)
  • Si: Soft Interrupt(SoftIRQ)
  • Zero: 끝

그림 2 multi-core cpu시의 /proc/stat 결과

첫째 CPU는 모든 CPU core의 합을 나타낸다.

각 필드는 리눅스의 시간 표시 단위인 jiffy로 나타낸다.

Jiffy: system timer interrupt에 의한 one tick를 나타내는 단위. 기본적으로 100Hz (0.01초)

 

/proc/[pid]/stat

 

Process에 대한 상태 정보.

그림 3 Andorid /proc/[pid]/stat

  • Pid %d: process ID
  • Comm %s: 괄호 안은 실행 가능한 파일이름.
  • State %c: "RSDZTW"중 한 개의 문자. R은 running, S는 interrupt가능한 sleeping, D interrupt 불가능한 disk sleep 상태의 waiting, Z zombie, T is traced or stopped (on a signal), and W is paging
  • Ppid %d: 부모의 PID
  • Pgrp %d: process의 process group ID
  • Session %d: process의 session ID
  • Tty_nr %d: The controlling terminal of the process.
  • tpgid %d:
  • flags %u (%lu before Linux 2.6.22):
  • minflt %lu:
  • cminflt %lu:
  • majflt %lu:
  • cmajflt %lu:
  • utime %lu: user mode에 scheduled 되는 process의 시간의 양. Clock ticks로 언급됨. 이것은 guest time을 포함한다. 따라서 application은 계산에서 손실되는 guest time 부분의 시간을 인식하지 않아도 된다.
  • stime %lu: kernel mode에서 scheduled 되는 process의 시간의 양. Clock ticks로 언급됨.
  • Cutime %ld: user mode에서 process가 children을 기다리는 시간의 양. Clock ticks로 언급됨.
  • Cstime %ld: kernel mode에서 process가 children을 기다리는 시간의 양. Clock ticks로 언급됨.
  • Prority %ld:
  • Nice %ld:
  • Num_threads %ld: process의 thread 수.
  • Iteralvalue %ld:
  • Starttime %llu:
  • Vsize %lu:
  • Rss %ld:
  • Rsslim %lu:
  • Startcode %lu: The address above which program text can run.
  • Endcode %lu: The address below which program text can run.
  • Startstack %lu: the address of the start (i.e. bottom) of the stack.
  • Kstkesp %lu: The current value of ESP (stack pointer), as found in the kernel stack page for the process.
  • Kstkeip %lu: The current EIP (instruction pointer)
  • Signal %lu:
  • Blocked %lu:
  • Sigignore %lu:
  • Sigcatch %lu:
  • Wchen %lu:
  • Nswap %lu:
  • Cnswap %lu:
  • Exit_signal %d:
  • Processor %d:
  • Rt_priority %u:
  • Policy %u:
  • Delayacct_blkio_ticks %llu:
  • Guest_time %lu:
  • Cguest_time %ld:

 

Reference: http://linux.die.net/man/5/proc

반응형