Thursday, January 19, 2017

Installation usage and understanding of nicstat command


A lot of times we need to check whether its the network causing the bottleneck. There are a lot of tools like iftop to check this. nicstat is one of the nice tools to check the network performance. In this post we will see how to install and use nicstat command. This example is executed on a centos linux system.

Download the nicstat tar file.

Untar the downloaded file.
tar xvzf nicstat-1.95.tar.gz

Go inside the extracted nicstat directory.
cd nicstat-1.95

Check the Readme file for the instructions.
cat README.txt

mv Makefile.Linux Makefile

If your system is 64bit, then you will get the following error.
[root@sysadmin nicstat-1.95]# make
gcc -O3 -m32    nicstat.c   -o nicstat
In file included from /usr/include/features.h:385,
                 from /usr/include/stdio.h:28,
                 from nicstat.c:33:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make: *** [nicstat] Error 1
[root@sysadmin nicstat-1.95]#

Then you need to install the following packages.
yum -y install glibc-devel.i686 glibc-devel

On some systems, even if you install glibc, the following error will come.

 [root@main nicstat-1.95]# make
gcc -O3 -m32    nicstat.c   -o nicstat
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/ when searching for -lgcc_s
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/ when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [nicstat] Error 1
[root@main nicstat-1.95]

You have to install the following packages to resolve this.
yum install libstdc++-devel.i686

Once all the required packages are installed, compile and install.
[root@sysadmin nicstat-1.95]# make
gcc -O3 -m32    nicstat.c   -o nicstat
mv nicstat `./ --bin-name`
[root@sysadmin nicstat-1.95]# make install
gcc -O3 -m32    nicstat.c   -o nicstat
sudo install -o root -g root -m 4511 `./ --bin-name` /usr/local/bin/nicstat
sudo install -o bin -g bin -m 555 enicstat /usr/local/bin
sudo install -o bin -g bin -m 444 nicstat.1 /usr/local/share/man/man1/nicstat.1

Now we can run the command.
[root@sysadmin nicstat-1.95]# nicstat
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
14:46:58       lo    0.00    0.00    0.00    0.00   80.58   80.58  0.00   0.00
14:46:58     eth0   13.27    0.83   13.95    8.32   974.1   102.3  0.12   0.00

To see the stats of a particular Ethernet interface
[root@sysadmin nicstat-1.95]# nicstat -i eth0
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
14:47:05     eth0   13.26    0.83   13.94    8.31   973.9   102.2  0.12   0.00
[root@sysadmin nicstat-1.95]#

Use -x extended output
[root@main nicstat-1.95]# nicstat -i eth2 -x
15:00:28      RdKB    WrKB   RdPkt   WrPkt   IErr  OErr  Coll  NoCP Defer  %Util
eth2        2078.2  2289.4  2413.0  1868.8   0.00  0.00  0.00  0.00  0.00   2.54

To get the summary
[root@main nicstat-1.95]# nicstat -i eth2 -s
    Time      Int          rKB/s          wKB/s
15:01:13     eth2       2078.175       2289.413

To repeat the summary in every 2 seconds for 5 times.
[root@main nicstat-1.95]# nicstat -i eth2 -s 2 5
    Time      Int          rKB/s          wKB/s
15:01:36     eth2       2078.173       2289.411
15:01:38     eth2       1088.889       1641.253
15:01:41     eth2       1065.228       1353.393
15:01:43     eth2        943.999        952.306
15:01:44     eth2        855.518       1361.279

To show TCP statistics

[root@main nicstat-1.95]# nicstat -t
15:09:12    InKB   OutKB   InSeg  OutSeg Reset  AttF %ReTX InConn OutCon Drops
TCP         0.00    0.00  1252.8   980.8  0.05  0.28 0.000   12.4   0.52  0.00

To show UDP statistics
[root@main nicstat-1.95]# nicstat -u
15:09:48                    InDG   OutDG     InErr  OutErr
UDP                         0.59    0.59      0.00    0.00

No comments:

Post a Comment

Be nice. That's all.