您的位置:首页 > 理论基础 > 计算机网络

网络测试工具netperf的使用

2018-01-24 15:39 483 查看
Netperf是一种网络性能的测量工具,可以测试基于TCP或UDP吞吐、响应速率。Netperf包括Clien和Server端,Server端主要用来实现监听工作,Client端进行测试。根据流量传输方式可分为以下三种:

单方向最大吞吐传输大量数据。
双方向交互传输数据,对于tcp为单连接。
针对tcp,每个连接交互传输数据。

Netperf服务端

Netperf服务端使用命令为netserver。netserver默认监听端口为12865。netserver可选项较少,常用-p指定监听端口。-h可以查看可选项。

启动服务器:

[root@localhost ~]# netserver
Starting netserver with host'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
指定监听端口:
[root@localhost tmp]# netserver -p 1180
Starting netserver with host'IN(6)ADDR_ANY' port '1180' and family AF_UNSPEC

netperf客户端

Netperf客户端使用命令就是netperf。netperf使用语法:
netperf [global options] -- [test options]
其中,global options为通用参数,所有测试项目都涉及或者说是公共的参数,test options是测试项用的参数。
global options常用的参数有:
-t: 指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR。可以省略,省略即为TCP_STEAM。
-H:指定远程主机,即netserver服务器的IP地址。
-l: 指定测试的时间长度,单位为秒。

-p:指定netserver监听端口,可以省略,省略即为默认端口12865。

测试tcp吞吐:

Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:

[root@localhost ~]# netperf -t TCP_STREAM -H 192.168.0.221 -l 10 -P 1180
MIGRATED TCP STREAM TEST from 0.0.0.0(0.0.0.0) port 0 AF_INET to 192.168.0.221 () port 0 AF_INET
Recv  Send    Send
Socket Socket  Message Elapsed
Size  Size    Size     Time    Throughput
bytes bytes   bytes    secs.   10^6bits/sec

87380 16384  16384    10.00   4586.58
测试结果:吞吐为4.5G/s。
其中:
第一列为服务端接收包的Socket缓冲区大小,这里是87380

第二列为客户端发送数据的Socket缓冲区大小,这里是16384

第三列为发送的消息的大小,这里为16384

第四列为测试时长

第五列为测试的速率,单位为M,这里结果为4.5G/s。

此外,TCP_STREAM的常用测试参数有:

-s:客户端缓冲区大小,指定客户端发送数据的缓冲区大小 
-S:服务端缓冲区大小,指定服务端接收数据的缓冲区大小

-m:发送消息大小,单位为bytes

-M:接收消息大小,单位为bytes

可以调整这些参数,了解哪些因素对传输速率有影响

测试UDP吞吐

[root@localhost ~]# netperf -t UDP_STREAM -H 192.168.0.221 -l 10
MIGRATED UDP STREAM TEST from 0.0.0.0(0.0.0.0) port 0 AF_INET to 192.168.0.221 () port 0 AF_INET
Socket Message  Elapsed      Messages
Size   Size     Time         Okay Errors   Throughput
bytes  bytes    secs            #      #  10^6bits/sec

212992  65507   10.00       78233      0   4099.59
212992           10.00       74263           3891.55
测试结果:

第一行表示本地吞吐4.0G/s,第二行表示接收端吞吐只有3.8G/s。

测试tcp交互响应速率,类似http长连接或客户端对数据库服务器读取存储

[root@localhost ~]# netperf -t TCP_RR -H 192.168.0.221 -l 10 -- -r 256,2048
MIGRATED TCP REQUEST/RESPONSE TEST from0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.221 () port 0 AF_INET : firstburst 0
Local /Remote
Socket Size   Request Resp.   Elapsed  Trans.
Send  Recv   Size     Size   Time     Rate
bytes Bytes  bytes    bytes  secs.    per sec

16384 87380  256      2048   10.00    6020.25
16384 87380
测试结果:
第一行显示:每秒达6k响应。第二行只是显示服务器端信息。

-r:指定客户端发送数据大小和服务器端响应数据大小。例子中客户端每次发送tcp数据256字节,服务器每次回复2048字节。

参考文献:
[1].  http://blog.51cto.com/dingtongxue1990/1853714
[2].  http://pangyi.github.io/blog/20141210/wang-luo-ce-shi-gong-ju-netperf/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: