# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 10308 740 ? Ss Mar08 0:29 init [3]
root 2 0.0 0.0 0 0 ? S< Mar08 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< Mar08 0:23 [migration/0]
root 4 0.0 0.0 0 0 ? S< Mar08 0:10 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Mar08 0:03 [watchdog/0]
USER : process 소유주
PID : Process ID
%CPU : 현재 해당 프로세스의 CPU 사용률
%MEM : 사용된 메모리의 추정치
VSZ : 현재 사용중인 가상메모리 또는 페이지.
RSS : 현재 사용중인 Real 메모리
TTY : 현재 사용중인 process의 소유자가 사용중인 터미널 포트
S : 현재 프로세스의 STAT(상태)
-----------------------------------------------------------
아래는 STAT 필드의 상태를 설명한 내용이다.
-D : 디스크 입출력 대기 상태로 interrupts를 걸 수 없는 상태
D uninterruptible sleep (usually IO)
프로세스가 sleep상태라는건 말하자면 어떤 한 부분에서 더이상 진행하지 않고 멈춰있는 것.
그냥 할 일이 없다거나 자기 순서가 안돌아와서 멈춰있으면 그것은 그냥 S이고
어떤 IO작업이 끝나길 기다리느라 멈춰있으면 D상태인 것이죠.
대용량의 파일을 복사한다거나 하는 Disk I/O를 많이 발생하는 작업이 있을 때 흔히 볼 수 있다.
-R : 실행중
R runnable (on run queue)
이건 S의 반대. ps명령이 실행되는 순간 현재진행형 상태에 있는 프로세스에 나타남.
재미있는 것은 대개의 경우 R상태를 갖는 것은 ps 명령 자신이다.
-S : 짧은 sleep 상태
-T : 정지상태
T traced or stopped 어떤 명령을 실행중일 때 Ctrl Z를 누르면 그 프로세스의 진행을 멈출 수 있다.
물론 일반적인 경우이다.. 그렇게 멈추어진 넘들이 T상태를 갖는다.
-Z : 좀비상태 Z a defunct ("zombie") process 프로세스가 정상종료되면 프로세스목록에서 제거가 될텐데 비정상 종료로 인해 목록에 남아있게 되면 좀비프로세스다.
실제로는 죽은 상태?실행은 안된다.
-W : 상주한 페이지가 없는 프로세스 W has no resident pages resident memory가 뭔지 확실히 몰라서 해석을 제대로 못하지만, ps aux 해보시면 RSS라는 항목이 나타냄.
바로 resident mem의 용량을 나타내는 항목인데, W가 붙은 넘들은 모두 RSS가 0 이 됨.
-< : 높은 우선권 프로세스 < high-priority process (우선 순위가 높은 프로세스)
-N : 낮은 우선권 프로세스 N low-priority task 프로세스가 일정수준 이상의 우선순위를 가지면 high-priority겠고 보통보다도 낮은 우선순위를 가지면 low-priority가 됨.
-L : 페이지가 락이 걸린 상태 L has pages locked into memory (for real-time and custom IO) real-time I/O등을 다루는 프로세스라면 스왑이 되면 안되는 부분이 있어서,
그 프로세스가 차지하는 메모리 공간중에 스왑의 대상이 되지 못하게 lock이 걸리게 된다 .
-----------------------------------------------------------
START : process 시작 시간
TIME : 총 사용된 CPU time
COMMAND : 실행된 명령어의 이름