proctime
사용법
proctime -V
proctime -p plist [-f][-d][-0][-1] [interval [count]]
proctime -p pid -l [-f][-d][-0][-1] [interval [count]]
proctime -R -p plist [-0][-f]
proctime -R -p pid -l [-0][-L lwplist] [-f]
Options are as follows:
-? print this help
-0 insert DATE.TIME info at the first column
-1 set both interval and count to 1
-d print detail time for CPU usage in microsecond
-f print command name only insted of argument list
-l print CPU usage per LWP
-L lwplist print information of the LWPs in the lwplist
-p plist process list(separated by comma) to monitor
-R display accumulated data since process started
-V show version
interval interval time(second); def: 5
count times to get the info
설명
proctime 명령어는 지정한 시간 간격(디폴트 5초) 동안에
-p 옵션에서 지정한 프로세스에 대하여 CPU를 사용한 시간 및 sleep 시간에 대한 자세한 정보를 보여준다.
# proctime -p 6674
PID USERNAME NLWP S D-WCPU% D-CPU% SCALL CS SIG ELAPSED USR SYS TRP FLT LCK LAT STP SLP COMMAND
6674 root 15 S 0.00% 0.00% 0 0 0 43d86289 0.0 0.0 0.0 0.0 53.3 0.0 0.0 46.7 /usr/sbin/syslogd
|
USR, SYS, TRP, FLT, LCK, LAT, STP, SLP에서 표시되는 값은
각 요소에 소요된 시간에 대한 비률을 나타낸다.
USR, SYS, TRP, FLT는 CPU를 사용한 비률이고, LCK, LAT, STP, SLP를 CPU를 사용하지않은 비율이다.
각 필드에 대한 설명은 아래 부분에서 설명한다.
-l 옵션을 지정하면 프로세스에 있는 각각의 LWP 정보를 보여준다. (출력되는 데이타는 LWPID 숫자의 오름차순임)
# proctime -l -p 213
COMMAND: /usr/sbin/syslogd
PID USERNAME LWPID NLWP S D-WCPU% D-CPU% SCALL CS SIG ELAPSED USR SYS TRP FLT LCK LAT STP SLP SYSCALL-NAME
213 root 1 17 S 0.00% 0.00% 0 0 0 0d21918 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 sigtimedwait
213 root 12 17 S 0.00% 0.00% 0 0 0 0d21911 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 13 17 S 0.00% 0.00% 0 0 0 0d21911 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 poll
213 root 14 17 S 0.00% 0.00% 0 0 0 0d21911 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 door
213 root 15 17 S 0.00% 0.00% 0 0 0 0d21910 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 16 17 S 0.00% 0.00% 0 0 0 0d21910 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 poll
213 root 17 17 S 0.00% 0.00% 0 0 0 0d21908 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 door
213 root 18 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 19 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 20 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 21 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 22 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 23 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 24 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 25 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 26 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
213 root 27 17 S 0.00% 0.00% 0 0 0 0d12767 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100 lwp_park
|
-d 옵션을 지정하면 CPU 사용 비률 및 sleep 비률이 아닌 micro-second 단위의 시간을 보여준다.
# proctime -d -p 6674
PID USERNAME NLWP S D-WCPU% D-CPU% SCALL CS SIG ELAPSED USER SYS TRAP FAULT LOCK LATENCY STOP SLEEP COMMAND
213 root 17 S 0.00% 0.00% 0 0 0 0d22354 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 85.000000 /usr/sbin/syslogd
|
다음은 2개의 프로세스에 대하여 2초 간격으로 3번 데이타를 수집하는 예제이다.
# proctime -p 808,1734 -f 2 3
PID USERNAME NLWP S D-WCPU% D-CPU% SCALL CS SIG ELAPSED USR SYS TRP FLT LCK LAT STP SLP CMD
808 root 21 S 16.46% 8.23% 5119 1118 0 62d9829 0.5 0.2 0.0 0.0 88.0 0.1 0.0 11.0 cvm
1734 guest 16 S 0.06% 0.03% 122 51 0 62d9194 0.0 0.0 0.0 0.0 75.0 0.0 0.0 25.0 java
PID USERNAME NLWP S D-WCPU% D-CPU% SCALL CS SIG ELAPSED USR SYS TRP FLT LCK LAT STP SLP CMD
808 root 21 S 16.17% 8.08% 3920 850 0 62d9831 0.5 0.3 0.0 0.0 88.4 0.1 0.0 10.7 cvm
1734 guest 16 S 0.06% 0.03% 120 49 0 62d9196 0.0 0.0 0.0 0.0 75.0 0.0 0.0 25.0 java
PID USERNAME NLWP S D-WCPU% D-CPU% SCALL CS SIG ELAPSED USR SYS TRP FLT LCK LAT STP SLP CMD
808 root 21 S 10.77% 5.39% 3394 731 0 62d9833 0.4 0.2 0.0 0.0 88.9 0.1 0.0 10.6 cvm
1734 guest 16 S 0.06% 0.03% 131 53 0 62d9198 0.0 0.0 0.0 0.0 75.0 0.0 0.0 25.0 java
|
-l 옵션을 지정할 경우에 -p 옵션에 하나의 프로세스만 지정할 수 있다.
다음은 proctime 명령어의 헤더 정보이다.
필드 | 설명 |
PID | 프로세스 ID |
USERNAME | 사용자명 |
LWPID | 프로세스에 있는 LWP(light-weight process: 쓰레드) ID |
NLWP | 프로세스에 있는 LWP(light-weight process: 쓰레드)의 개수 |
S | 프로세스의 상태(state)를 표시한다.
S Sleeping process
O process On processor
R Runnable process
Z Zombie state
T process stopped ether by a job control signal or because of
being Traced.
|
D-CPU% D-WCPU% |
D-CPU%는 지정된 시간 간격 동안에 사용된 CPU 사용량의 백분률
D-WCPU%(weighted CPU%) = D-CPU% * processor 개수
|
SCALL | 지정한 시간 가격동안에 시스템 콜을 호출한 횟수 (초당값이 아님.) |
CS | 지정한 시간 가격동안에 context switching 횟수 (초당값이 아님.) |
SIG | 지정한 시간 가격동안에 signal을 받은 횟수 (초당값이 아님.) |
ELAPSED | LWP가 시작한 후에 경과된 시간(second)
형식: day d second
1d12419: 1일 12419초가 경과함
|
USR | USER 모드에서 사용한 CPU 사용률 (-d 옵션 사용시 소요된 시간 표시) |
SYS | SYSTEM 모드에서 사용한 CPU 사용률 (-d 옵션 사용시 소요된 시간 표시) |
TRP | TRAP 모드에서 사용한 CPU 사용률 (-d 옵션 사용시 소요된 시간 표시) |
FLT | (text, data, kernel) page fault 처리에 사용한 CPU 사용률 (-d 옵션 사용시 소요된 시간 표시) |
LCK | user lock wait sleep 비률 (-d 옵션 사용시 소요된 시간 표시) |
LAT | wait-cpu (latency) sleep 비률 (-d 옵션 사용시 소요된 시간 표시) |
STP | stopped sleep 비률 (-d 옵션 사용시 소요된 시간 표시) |
SLP | 그외 sleep 비률 |
CMDLINE | 명령어 및 인수 |
CMD | 명령어 패스의 마지막 파일명
예를 들어 명령어가 /usr/openwin/bin/htt -nosm 경우에 htt을 나타낸다.
/usr/openwin/bin/htt -nosm ---> htt
이 컬럼은 -f 옵션을 사용할 경우에 출력된다.
|
SYSCALL-NAME |
-l 옵션을 사용하면, 쓰레드 별로 정보를 보여준다. 이 때 스레드가
수행하고 있는 시스템 콜명을 표시한다.
|
다음은 proctime 명령어의 옵션이다.
옵션 | 설명 |
-0 |
-0 옵션을 지정하면, 첫컬럼에 날짜와 시간 정보를 출력하게 한다.
|
-1 |
-1 옵션은 interval과 count를 1로 지정한다. 다음의 두개의 명령어는 같은 의미이다.
# proctime -1
# proctime 1 1
즉, 1초 시간 간격으로 1회 데이타를 출력한다.
|
-d |
-d 옵션을 지정하면, 프로세스의 시간정보를 micro-second 단위로 보여준다.
|
-l |
-l 옵션을 지정하면, 프로세스에 있는 개별 LWP 별로 데이타를 보여준다.
-l 옵션을 사용할 경우에 -p 옵션에 하나의 프로세스만 지정할 수 있다.
|
-L lwpid |
-L 옵션에 쓰레드 ID를 지정하면, 지정한 쓰레드 정보만 보여준다.
-L 옵션은 -l 옵션과 함께 사용된다.
|
-p plist |
-p plist 데이타를 수집할 프로세스 ID를 지정한다.
여러 개의 프로세스를 지정하려면 콤마로 분리하여 지정할 수 있다.
-l 옵션을 사용할 경우에는 -p 옵션에 하나의 프로세스만 지정할 수 있다.
|
-R |
-R 옵션을 지정하면 프로세스가 지금까지 누적 시간은 nano-second 단위로 표시한다.
# proctime -R 14359
PID USERNAME NLWP S SCALL CS SIG ELAPSED USER SYS TRAP
FAULT LOCK LATENCY STOP SLEEP COMMAND
14359 guest 1 S 21223 4337 13 13d1218 0.050974252 0.187492469 0.000621154
0.000000000 0.000000000 0.256963024 0.000012422 1124483.142170856 ksh
|
|
-V |
-V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
|
[interval [count]] |
interval의 시간 간격으로 count 횟수 만큼 반복하여 프로세스 정보를 수집한다.
count를 지정하지 않으면, 지정한 시간 간격으로 무한히 반복한다.
둘다 지정하지 않으면 5초 단위로 한번만 프로세스 정보를 수집한다.
|
|