*netperf简介*
Netperf是由惠普公司开发的,测试网络栈。即测试不同类型的网络性能的benchmark工具,大多数网络类型TCP/UPD端对端的性能,得到网络上不同类型流量的性能参数。Netperf根据应用的不同可以进行不同模式的网络性能测试,即:批量数据传输模式和请求/应答模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。
Netperf工具以 client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,进行来回传递特殊的流量模式,以测试网络的性能。
*netperf使用说明*
1. 下载
2. 解压
tar xvf netperf.tar.bz2
3. 分别在服务器和客户端安装
./configure && make && make install
4. 进行测试
服务器端 : 运行netserver
客户端 : 编写脚本并运行,脚本如下
#! /bin/bash
i=1
while [ $i -le 2 ]
do
netperf -H 10.20.41.131 -l 300 -t TCP_STREAM
netperf -H 10.20.41.131 -l 300 -t TCP_RR
netperf -H 10.20.41.131 -l 300 -t TCP_CRR
echo "this is $i * 15 min after "
i=$(($i+1))
done
echo " now down"
*参数说明*
-H host 指定远端运行netserver的server IP地址
-l testlen 指定测试的时间长度(秒)
-t testname 指定进行的测试类型(TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR)
-s size 设置本地系统的socket发送与接收缓冲大小
-S size 设置远端系统的socket发送与接收缓冲大小
-m size 设置本地系统发送测试分组的大小
-M size 设置远端系统接收测试分组的大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项
-r req,resp 设置request和reponse分组的大小
*模式说明*
TCP_RR:TCP_RR方式的测试对象是多次TCP request和response的交易过程,但是它们发生在同一个TCP连接中,这种模式常常出现在数据库应用中。数据库的client程序与server程序建立一个TCP连接以后,就在这个连接中传送数据库的多次交易过程。
TCP_CRR:TCP_CRR为每次交易建立一个新的TCP连接。最典型的应用就是HTTP,每次HTTP交易是在一条单独的TCP连接中进行的。因此,由于需要不停地建立新的TCP连接,并且在交易结束后拆除TCP连接,交易率一定会受到很大的影响。
UDP_RR:UDP_RR方式使用UDP分组进行request/response的交易过程。由于没有TCP连接所带来的负担,所以我们推测交易率一定会有相应的提升。
netperf
编译不过可尝试 ./configure --build=mips
注:服务器及客户端使用相同的源码,测试时关闭防火墙