====== /proc/stat 정보 ====== ===== 개념 ===== - Linux 상에서 CPU 사용률을 확인하려면 /proc/stat 정보를 확인해야 한다. - 쓰여진 글은 kernel 2.6.x 기준으로 작성하였다. ===== 계산공식 ===== - CPU 사용률은 부팅후 지금까지 소모된 jiffies 의 크기를 나타낸다. - /proc 정보를 확인해보자 \\ {{:os:system:usage:cpu:proc_stat.jpg|}} ==== cpu ==== === 그림 중에 CPU 항목만 정리해보자 === ^ CPU ^ user ^ nice ^ system ^ idle ^ iowait ^ irq ^ softirq ^ | cpu | 7359334 | 7556 | 1624101 | 7431572965 | 26230351 | 125487 | 1240302 | | cpu0 | 2887366 | 1844 | 799938 | 1857208640 | 4874523 | 125487 | 1142273 | | cpu1 | 2165862 | 1864 | 356839 | 1854813781 | 9657314 | 0 | 44299 | | cpu2 | 1289202 | 1838 | 216457 | 1859750675 | 5754401 | 0 | 27456 | | cpu3 | 1016902 | 2010 | 250865 | 1859799867 | 5944111 | 0 | 26273 | === 각 필드의 정의 === ^ cpu | cpu number, 맨처음의 cpu는 모든 CPU 정보를 나타내는 것이다 | ^ user | normal processes executing in user mode | ^ nice | niced(=low priority) processes executing in user mode | ^ system | processes executing in kernel mode | ^ idle | twiddling thumbs | ^ iowait | waiting for I/O to complete | ^ irq | servicing interrupts | ^ softirq | servicing softirqs | == CPU 사용률 계산방법 === - CPU 사용률은 사용중은 ijffies 중 idle 정보를 얻어와서 백분률로 표시하면 된다. \\ 다음 공식으로 값을 얻을 수 있다. \\ ( (idle jiffies) / (user jiffies + nice jiffies + system jiffies + idle jiffies) ) * 100 - 이와 같은 방법을 통해 일정시간(sec) 소비된 jiffies 구해야 한다. (이전 jiffies 값도 알고 있어야 한다.) ==== intr ==== - counts of interrupts serviced since boot time, for each of the possible system interrupts. - The first column is the total of all interrupts serviced; \\ each subsequent column is the total for that particular interrupt. ==== ctxt ==== - the total number of context switches across all CPUs. ==== btime ==== - the time at which the system booted, in seconds since the Unix epoch. ==== processes ==== - the number of processes and threads created, which includes (but is not limited to) those created by calls to the fork() and clone() system calls. ==== proces_running ==== - the number of processes currently running on CPUs. ==== process_blocked ==== - number of processes currently blocked, waiting for I/O to complete. ===== 관련문서 ===== - http://www.cyberciti.biz/tips/how-do-i-find-out-linux-cpu-utilization.html