System/OS
2013.04.23 15:14
[linux] 리눅스,유닉스 /proc/stat 파일 보는 법
조회 수 18415 댓글 0
# cat /proc/stat
cpu 3148 94 2538 716267
cpu0 3148 94 2538 716267
page 174593 61612
swap 1 0
intr 755470 722047 34 0 0 0 791 1 0 1 0 0 0 1159 0 31416 21
disk_io: (3,0):(6,6,48,0,0) (3,1):(31658,27506,348632,4152,123202)
ctxt 471998
btime 1064663858
processes 9931
위에서부터 하나씩 설명 드립니다.
cpu는 user, nice, system, idle 순서로 출력되며,
시스템에 설치된 cpu 전체에 대해서 나타내는 것이지만..
저의 시스템에는 cpu가 하나 밖에 없기 때문에.. cpu0와 같은 숫자로 나타납니다.
만약 cpu가 두개인 시스템에서는 다르게 나오겠지요..
cpu0는 user, nice, system, idle 순서로 출력되며, 첫번째 cpu에 대한 값입니다.
현재 cpu가 하나밖에 없기 때문에 cpu0만 나타납니다. 두개면 cpu1까지 나오겠지요...
page는 pages_in, pages_out 의 순서로 출력됩니다.
pages_in은 시스템으로 부터 읽은 페이지의 개수이며, pages_out은 시스템에 기록한 페이지의 개수입니다.
swap는 swap_pages_in, swap_pages_out의 순서로 출력됩니다.
swap_pages_in 은 스왑으로 부터 읽은 페이지의 개수를 나타내며, swap_pages_out는 스왑에 기록한 페이지의 개수를 나타냅니다.
intr 은 interrupts_total, interrupts.. 로 출력됩니다.
interrupts_total은 전체 인터럽터의 수를 나타내며(뒤쪽에 나오는 모든 숫자를 합한 값과 같습니다), interrupts는 각각의 IRQ에 대한 인터럽트의 개수입니다.
disk_io는 디스크 입출력에 대한 전반적인 정보입니다.
표시 형식은 (major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written) 이며,
자세한 사항을 잘 모르겠네요. 혹시 알게 되면 좀 알려주세요.
ctxt는 context switch로써, 리눅스 작업 스케쥴러에 의해 사용되는 모든 정보의 개수를 나타냅니다.
btime 는 시스템이 부팅된 시간을 표시합니다. 단 표시 방법은 1970년 1월 1일을 기점으로 하여 시스템이 부팅된 시간을 초단위로 표시합니다.
processes 는 시스템이 부팅된 후 실행된 프로세스의 수입니다.
제가 정확히 알지를 못해서 자세한 설명은 못드렸습니다.
그럼..
/proc/$PID/stat 에 대해서 물었는데.. /proc/stat 에 대해서 답을 했네요..
/proc/$PID/stat 에 대해서 설명해 보겠습니다. 저의 시스템의 경우 아래와 같이 나오네요.
# cat /proc/1/stat
1 (init) S 0 0 0 0 -1 256 69 875204 119 2557185 0 395 2519 1926 15 0 0 0 34 1400832 119 4294967295 134512640 134536766 3221225280 3221224032 1108220030 0 0 1475401980 671819267 3222402956 0 0 0 0
처음부터 순차적으로 설명을 드리지요. (39개의 필드로 이루어졌네요.. ^^)
첫번째 필드는 pid를 나타냅니다. 즉 프로세스 id 이지요.
두번째 필드의 괄호 안의 것은 프로세스 이름입니다. 실행되는 파일명입니다.
세번째 필드는 현재의 상태를 나타냅니다. "RSDZTW"중의 한 문자로 나타나며, R은 Running, S는 Sleeping, D는 iDle, Z은 Zombie, T는 Traced 또는 sTopped, W는 paging를 나타냅니다.
네번째 필드는 부모 프로세스의 PID를 나타냅니다.
다섯번째는 프로세스의 그룹 ID를 나타냅니다.
여섯번째는 프로세스의 세션 ID를 나타냅니다.
일곱번째는 현재 프로세스를 사용하고 있는 터미널(tty)을 나타냅니다.
여덟번째는 현재 프로세스를 사용하는 터미널(tty)의 소유자의 프로세스 ID를 보여줍니다.
아홉번째는 프로세스의 플래그를 보여줍니다.
열번째는 디스크로부터 메모리 페이지에 적재하지 못하고 실패했던 minor 프로세스 개수를 보여줍니다.
열한번째는 현재 프로세스의 자식 프로세스가 만든 minor 프로세스의 수를 나타냅니다.
열두번째는 디스크로부터 메모리 페이지에 적재하지 못하고 실패했던 major 프로세스 개수를 보여줍니다.
열세번째는 현재 프로세스의 자식 프로세스가 만든 major 프로세스의 수를 나타냅니다.
열네번째는 현재 프로세스가 사용자 모드에서 사용되는 순간에 사용된 프로세스의 수를 나타냅니다.
열다섯번째는 현재 프로세스가 커널 모드에서 사용되는 순간에 사용된 프로세스의 수를 나타냅니다.
cpu 3148 94 2538 716267
cpu0 3148 94 2538 716267
page 174593 61612
swap 1 0
intr 755470 722047 34 0 0 0 791 1 0 1 0 0 0 1159 0 31416 21
disk_io: (3,0):(6,6,48,0,0) (3,1):(31658,27506,348632,4152,123202)
ctxt 471998
btime 1064663858
processes 9931
위에서부터 하나씩 설명 드립니다.
cpu는 user, nice, system, idle 순서로 출력되며,
시스템에 설치된 cpu 전체에 대해서 나타내는 것이지만..
저의 시스템에는 cpu가 하나 밖에 없기 때문에.. cpu0와 같은 숫자로 나타납니다.
만약 cpu가 두개인 시스템에서는 다르게 나오겠지요..
cpu0는 user, nice, system, idle 순서로 출력되며, 첫번째 cpu에 대한 값입니다.
현재 cpu가 하나밖에 없기 때문에 cpu0만 나타납니다. 두개면 cpu1까지 나오겠지요...
page는 pages_in, pages_out 의 순서로 출력됩니다.
pages_in은 시스템으로 부터 읽은 페이지의 개수이며, pages_out은 시스템에 기록한 페이지의 개수입니다.
swap는 swap_pages_in, swap_pages_out의 순서로 출력됩니다.
swap_pages_in 은 스왑으로 부터 읽은 페이지의 개수를 나타내며, swap_pages_out는 스왑에 기록한 페이지의 개수를 나타냅니다.
intr 은 interrupts_total, interrupts.. 로 출력됩니다.
interrupts_total은 전체 인터럽터의 수를 나타내며(뒤쪽에 나오는 모든 숫자를 합한 값과 같습니다), interrupts는 각각의 IRQ에 대한 인터럽트의 개수입니다.
disk_io는 디스크 입출력에 대한 전반적인 정보입니다.
표시 형식은 (major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written) 이며,
자세한 사항을 잘 모르겠네요. 혹시 알게 되면 좀 알려주세요.
ctxt는 context switch로써, 리눅스 작업 스케쥴러에 의해 사용되는 모든 정보의 개수를 나타냅니다.
btime 는 시스템이 부팅된 시간을 표시합니다. 단 표시 방법은 1970년 1월 1일을 기점으로 하여 시스템이 부팅된 시간을 초단위로 표시합니다.
processes 는 시스템이 부팅된 후 실행된 프로세스의 수입니다.
제가 정확히 알지를 못해서 자세한 설명은 못드렸습니다.
그럼..
/proc/$PID/stat 에 대해서 물었는데.. /proc/stat 에 대해서 답을 했네요..
/proc/$PID/stat 에 대해서 설명해 보겠습니다. 저의 시스템의 경우 아래와 같이 나오네요.
# cat /proc/1/stat
1 (init) S 0 0 0 0 -1 256 69 875204 119 2557185 0 395 2519 1926 15 0 0 0 34 1400832 119 4294967295 134512640 134536766 3221225280 3221224032 1108220030 0 0 1475401980 671819267 3222402956 0 0 0 0
처음부터 순차적으로 설명을 드리지요. (39개의 필드로 이루어졌네요.. ^^)
첫번째 필드는 pid를 나타냅니다. 즉 프로세스 id 이지요.
두번째 필드의 괄호 안의 것은 프로세스 이름입니다. 실행되는 파일명입니다.
세번째 필드는 현재의 상태를 나타냅니다. "RSDZTW"중의 한 문자로 나타나며, R은 Running, S는 Sleeping, D는 iDle, Z은 Zombie, T는 Traced 또는 sTopped, W는 paging를 나타냅니다.
네번째 필드는 부모 프로세스의 PID를 나타냅니다.
다섯번째는 프로세스의 그룹 ID를 나타냅니다.
여섯번째는 프로세스의 세션 ID를 나타냅니다.
일곱번째는 현재 프로세스를 사용하고 있는 터미널(tty)을 나타냅니다.
여덟번째는 현재 프로세스를 사용하는 터미널(tty)의 소유자의 프로세스 ID를 보여줍니다.
아홉번째는 프로세스의 플래그를 보여줍니다.
열번째는 디스크로부터 메모리 페이지에 적재하지 못하고 실패했던 minor 프로세스 개수를 보여줍니다.
열한번째는 현재 프로세스의 자식 프로세스가 만든 minor 프로세스의 수를 나타냅니다.
열두번째는 디스크로부터 메모리 페이지에 적재하지 못하고 실패했던 major 프로세스 개수를 보여줍니다.
열세번째는 현재 프로세스의 자식 프로세스가 만든 major 프로세스의 수를 나타냅니다.
열네번째는 현재 프로세스가 사용자 모드에서 사용되는 순간에 사용된 프로세스의 수를 나타냅니다.
열다섯번째는 현재 프로세스가 커널 모드에서 사용되는 순간에 사용된 프로세스의 수를 나타냅니다.
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
469 | Develop | [c] 게임 AI FSM 테스트 샘플 소스.. 꽤 괜찮은 소스.. | hooni | 2013.04.23 | 7499 |
468 | Develop | [c++] 인라인 함수 설명과 예제.. | hooni | 2013.04.23 | 6784 |
467 | Develop | [c++] 인라인 함수에 대한 설명 | hooni | 2013.04.23 | 7216 |
466 | Develop | [c] SetTimer() & KillTimer() & 일회용 Timer | hooni | 2013.04.23 | 9323 |
465 | Develop | [c] 네트워크 관련 프로그래밍 (포트스캔 탐지 샘플) | hooni | 2013.04.23 | 7320 |
464 | System/OS | [linux] 리눅스 파일시스템과 디렉토리 설명 | hooni | 2013.04.23 | 27379 |
463 | System/OS | [linux] 리눅스, 유닉스 CPU 이용률 확인.. | hooni | 2013.04.23 | 24295 |
» | System/OS | [linux] 리눅스,유닉스 /proc/stat 파일 보는 법 | hooni | 2013.04.23 | 18415 |
461 | Develop | [c] 프로세스 검사하기 | hooni | 2013.04.23 | 8218 |
460 | Develop | [asp] 폼메일 예제와 메일 포워딩 프로그램 | hooni | 2013.04.23 | 7307 |
459 | Develop | [asp] 폼 메일 소스 | hooni | 2013.04.23 | 7539 |
458 | Develop | [php] php+db 연동(odbc, mssql, mysql, sybase) 3 | hooni | 2013.04.23 | 8713 |