root@wl ~/src # wget "http://downloads.sourceforge.net/project/nicstat/nicstat-1.90.tar.gz?ts=1316636306" root@wl ~/src # tar xvfz nicstat-1.90.tar.gz root@wl ~/src # cd nicstat-1.90 root@wl ~/src/nicstat-1.90 # cp .nicstat.Solaris_10_i386 /usr/local/bin/nicstat root@wl ~/src/nicstat-1.90 # mv nicstat.1 /usr/local/share/man/man1소스설치
root@wl ~/src/nicstat-1.90 # mv Makefile.Solaris Makefile
root@wl ~/src/nicstat-1.90 # make
root@wl ~/src/nicstat-1.90 # make install 1)
1) /usr/local에 설치된다. 위치를 바꾸려면 [make BASEDIR=/install/path install]와 같이 한다.
root@wl ~ # nicstat -h
USAGE: nicstat [-hvnsxpztual] [-i int[,int...]]
[interval [count]]
-h # help
-v # show version (1.90)
-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)
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 5
Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat
13:33:16 lo0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13:33:16 bge0 0.03 0.01 0.21 0.16 125.5 88.07 0.00 0.00
13:33:16 bge1 0.00 0.00 0.01 0.00 136.8 68.89 0.00 0.00
Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat
13:33:21 lo0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
13:33:21 bge0 0.12 0.15 1.00 1.00 119.0 156.2 0.00 0.00
13:33:21 bge1 0.00 0.01 0.00 0.20 0.00 64.00 0.00 0.00
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: 초당 수신 바이트 wKB/s: 초당 송신 바이트 rPk/s: 초당 수신 패킷 wPk/s: 초당 송신 패킷 rAvs: 수신 패킷당 평균 크기(바이트) wAvs: 송신 패킷당 평균 크기(바이트) %Util: 인터페이스 사용율 Sat: Saturation. 오류 회수. 포화 상태를 표시.
root@wl ~ # cat kstattest.c
// cc -lkstat -o kstattest kstattest.c
#include <kstat.h>
#include <stdio.h>
void my_module_display(kstat_t * ksp) {
printf("%s %s %s", ksp->ks_module, ksp->ks_name, ksp->ks_class);
}
void my_io_display(kstat_io_t kio) {
printf(" %d %d\n", kio.nread, kio.nwritten);
}
void main() {
kstat_ctl_t * kc;
kstat_t * ksp;
kstat_io_t kio;
kc = kstat_open();
for (ksp = kc->kc_chain; ksp != NULL; ksp = ksp->ks_next) {
if (ksp->ks_type == KSTAT_TYPE_IO) {
kstat_read(kc, ksp, &kio);
my_module_display(ksp);
my_io_display(kio);
}
}
kstat_close(kc);
}
root@wl ~ # cc -lkstat -o kstattest kstattest.c
root@wl ~ # ./kstattest
cmdk cmdk0 disk 338056704 0
cmdk cmdk1 disk 317503488 0
usba ehci0,total usb_byte_count 0 0
usba ehci0,ctrl usb_byte_count 0 0
usba ehci0,isoch usb_byte_count 0 0
usba ehci0,bulk usb_byte_count 0 0
usba ehci0,intr usb_byte_count 0 0
...
usba uhci3,total usb_byte_count 0 0
usba uhci3,ctrl usb_byte_count 0 0
usba uhci3,isoch usb_byte_count 0 0
usba uhci3,bulk usb_byte_count 0 0
usba uhci3,intr usb_byte_count 0 0
sd sd2 disk 88 0
nfs nfs1 nfs 0 0
root@wl ~ #
|
|
Copyright © 2004-2012 Jo HoSeok. All rights reserved. |