lmbench的使用与介绍 - blogjava.doc
文本预览下载声明
Netperf使用
介绍:
Netperf是由惠普公司开发的,测试网络栈。即测试不同类型的网络性能的benchmark工具,大多数网络类型TCP/UPD端对端的性能,得到网络上不同类型流量的性能参数。Netperf根据应用的不同可以进行不同模式的网络性能测试即:批量数据传输模式和请求/应答模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。官网:/netperfNetperf工具以 client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,进行来回传递特殊的流量模式,以测试网络的性能。
安装与使用
安装
下载完netperf之后安装,命令如下:
#tar –zxvf netperf-2.4.5.tar.gz
#cd netperf-2.4.5
#make
使用
在unix系统中,可以直接运行可执行程序来启动netserver,也可以让inetd或xinetd来自动启动netserver。当netserver在server端启动后,就可在client端netperf来测试网络的性能。netperf通过命令行参数来控制测试的类型和具体的测试选项根据作用范围的不同,netperf的命令行参数可以分为两大类:全局命令行参数、测试相关的局部参数,两者之间使用--分隔
Netperf [global options] –-[test-specific options]
[global options] 可选参数,其中可选的参数有如下几个:
参数 说明 -H host 指定远端运行netserver的server IP -l testlen 指定测试的时间长度(秒) -t testname 指定进行的测试类型(TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR) -s size 设置本地系统的socket发送与接收缓冲大小 设置远端系统的socket发送与接收缓冲大小 设置本地系统发送测试分组的大小 设置远端系统接收测试分组的大小 对本地与远端系统的socket设置TCP_NODELAY选项 远程主机: NPtcp [options]
本地主机: NPtcp -h remote_host [options]批量数据传输典型的例子有ftp和其它类似的网络应用(即一次传输整个文件)。根据使用传输协议的不同,批量数据传输又分为TCP批量传输和UDP批量传输。
1. TCP_STREAM
Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:./netperf -H 8 -l 60
TCP STREAM TEST to 8
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 60.00 88.00 从netperf的结果输出中,我们可以知道以下的一些信息:
1) 远端系统(即server)使用大小为87380字节的socket接收缓冲
2) 本地系统(即client)使用大小为16384字节的socket发送缓冲
3) 向远端系统发送的测试分组大小为16384字节
4) 测试经历的时间为60秒
5) 吞吐量的测试结果为88Mbits/秒
在缺省情况下,netperf向发送的测试分组大小设置为本地系统所使用的socket发送缓冲大小。TCP_STREAM方式下与测试相关的局部参数如下所示: -s size 设置本地系统的socket发送与接收缓冲大小 设置远端系统的socket发送与接收缓冲大小 设置本地系统发送测试分组的大小 设置远端系统接收测试分组的大小 对本地与远端系统的socket设置TCP_NODELAY选项 通过修改以上的参数,并观察结果的变化,我们可以确定是什么因素影响了连接的吞吐量。例如,如果怀疑路由器由于缺乏足够的缓冲区空间,使得转发大的分组时存在问题,就可以增加测试分组
显示全部