root@wl ~/src/nicstat-1.95 # mv Makefile.Solaris Makefile
root@wl ~/src/nicstat-1.95 # make
root@wl ~/src/nicstat-1.95 # make install 1)
1) /usr/local에 설치된다. 위치를 바꾸려면 [make BASEDIR=/install/path install]와 같이 한다.
사용
실행방법은 간단하다. 아래와 같이 하면 된다. -h 옵션을 붙이면 도움말이 나온다.
root@wl ~ # nicstat -h
USAGE: nicstat [-hvnsxpztualMU] [-i int[,int...]]
[interval [count]]
-h # help
-v # show version (1.95)
-i interface # track interface only
-n # show non-local interfaces only (exclude lo0)
-s # summary output
-x # extended output
-p # parseable output
-z # skip zero value lines
-t # show TCP statistics
-u # show UDP statistics
-a # equivalent to "-x -u -t"
-l # list interface(s)
-M # output in Mbits/sec
-U # separate %rUtil and %wUtil
eg,
nicstat # print summary since boot only
nicstat 1 # print every 1 second
nicstat 1 5 # print 5 times only
nicstat -z 1 # print every 1 second, skip zero lines
nicstat -i hme0 1 # print hme0 only every 1 second
root@wl ~ # nicstat -M 5
Time Int rMbps wMbps rPk/s wPk/s rAvs wAvs %Util Sat
11:06:17 lo0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:06:17 gani0 0.00 0.00 0.01 0.02 130.7 1326.1 0.00 0.00
11:06:17 iprb0 0.00 0.00 0.02 0.01 1176.3 534.2 0.00 0.00
Time Int rMbps wMbps rPk/s wPk/s rAvs wAvs %Util Sat
11:06:22 lo0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:06:22 gani0 0.00 0.00 1.60 0.80 60.00 54.00 0.00 0.00
11:06:22 iprb0 0.00 0.00 1.40 2.40 60.00 98.00 0.00 0.00
Ctrl+C
root@wl ~ # nicstat -U 5
Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %rUtil %wUtil
19:51:13 lo0 0.00 0.00 0.05 0.05 0.00 0.00 0.00 0.00
19:51:13 gani0 0.39 0.54 0.51 0.55 767.7 1002.6 0.03 0.04
19:51:13 iprb0 0.53 0.71 0.68 0.76 794.3 961.6 0.00 0.01
Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %rUtil %wUtil
19:51:18 lo0 0.00 0.00 19.16 19.16 0.00 0.00 0.00 0.00
19:51:18 gani0 0.00 4.72 0.00 3.19 0.00 1514.0 0.00 0.00
19:51:18 iprb0 5.36 15.87 10.78 13.57 509.4 1196.9 0.04 0.13
Ctrl+C
root@wl ~ # nicstat -p
1285740541:lo0:0.000:0.000:0.002:0.002:0.00:0.00
1285740541:bge0:4.056:29.15:13.77:24.23:0.27:0.00
1285740541:bge1:29.30:7.429:27.28:17.05:0.30:0.00
root@wl ~ #
첫번째 라인은 시스템 부트 이후의 통계가 표시된다. 현재의 상태는 두번째 출력 부터다.
Time: 현재 시간
Int: 인터페이스명
rKB/s: 초당 수신 바이트
rMbps: 초당 수신 비트. (Mbits/sec)
wKB/s: 초당 송신 바이트
wMbps: 초당 송신 비트. (Mbits/sec)
rPk/s: 초당 수신 패킷
wPk/s: 초당 송신 패킷
rAvs: 수신 패킷당 평균 크기(바이트)
wAvs: 송신 패킷당 평균 크기(바이트)
%Util: 인터페이스 사용율
Sat: 포화도(Saturation) 1)
%rUtil: 수신 인터페이스 사용율
%wUtil: 송신 인터페이스 사용율
1) 네트워크 대역폭 포화로 인한 전송 대기 회수. 오류는 아니지만 전송속도에 큰 영향을 미친다. 원인은 많은데 브로드캐스팅 스톰인경우도 있고, 네트워크 토플로지상의 문제일수도 있다. 네트워크의 모든 사항을 체크해봐야 한다.
SE Toolkit
SE Toolkit 은 Richard Pettit 이 개발한 솔라리스용 성능 모니터링 툴킷이다. C와 비슷한 SymbEL 이라는 언어를 사용한다. (SE Toolkit 에서 SE가 SymbEL 의 약어다)
kstat(3kstat)에 대한 간단한 사용 방법에 대해 소개한다. 솔라리스의 커널 통계를 보여줄 수 있는 라이브러리로, 각종 커널 통계를 하드웨어적인 지식 없이 쉽게 낼 수 있다.
커맨드에서는 kstat(1m)를 사용해 kstat 라이브러리로 얻을 수 있는 목록과 값을 볼 수 있다. 셸 스크립트에서는 grep등과 같이 사용해 원하는 데이터를 얻을 수 있다. 실제로 nicstat 프로그램은 초기엔 펄로 프로그래밍 되어있었는데 이것이 kstat 유틸리티를 이용했다.