1. Netperf
Netperf是一种基于C/S模式的网络性能的测量工具,主要针对基于TCP 或UDP的传输。
它提供两种不同的网络性能测试模式:
批量数据传输(bulk data transfer)模式
请求/应答(request/reponse)模式。
Netperf测试结果所反映的是两个系统之间发送和接受数据的速度和效率。
我们的测试分4个部分:
1) 单个TCP连接,批量(bulk)传输大量数据
2) 单个TCP连接,client请求/server应答的交易(transaction)方式
3)从client到server的单向批量UDP传输
4) 请求/应答的UDP交易方式
由于UDP传输的不可靠性,在使用netperf时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。
安装:进入源码文件夹
./configure //配置netperf所需文件
make //编译生成二进制包
make install//安装
1.3. Netperf使用Netperf 基于C/S模式,需要在测试源端运行netsever,而本地运行netperf进行连接并测试。
Netperf全局命令参数介绍:netperf [global options]-- [test-specific options]
-H host :指定远端运行netserver的server IP地址。
-l testlen:指定测试的时间长度(秒)
-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR,以下测试中114.212.80.7作为server端。
首先,server端 netserver
1.TCP批量传输
netperf -H 114.212.80.7 -l 60 -t TCP_STREAM
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) 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 60.01 915.48
吞吐量为915.48Mbits/s
2. UDP批量传输
netperf -H 114.212.80.7 -l 60 -t UDP_STREAM
MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) port 0 AF_INET
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec
124928 65507 60.00 108589 0 948.42
110592 60.00 107810 941.62
UDP_STREAM方式的结果中有两行测试数据,第一行显示的是本地系统的发送统计,这里的吞吐量表示netperf向本地socket发送分组的能力。第二行显示的就是远端系统接收的情况。
3.TCP请求应答模式
netperf -H 114.212.80.7 -t TCP_RR
MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) port 0 AF_INET : first burst 0
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 10.00 4603.31
16384 87380
Netperf输出的结果也是由两行组成。第一行显示本地系统的情况,第二行显示的是远端系统的信息。平均的交易率(transaction rate)为3328.91次/秒。注意到这里每次交易中的request和response分组的大小都为1个字节,不具有很大的实际意义。用户可以通过测试相关的参数来改变request和response分组的大小,TCP_RR方式下的参数如下表所示:
参数 说明
-r req,resp 设置request和reponse分组的大小
-s size 设置本地系统的socket发送与接收缓冲大小
-S size 设置远端系统的socket发送与接收缓冲大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项
通过使用-r参数,我们可以进行更有实际意义的测试:
netperf -H 114.212.80.7 -t TCP_RR -- -r 321024
MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) port 0 AF_INET : first burst 0
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 321024 321024 10.00 168.97
16384 87380
4.TCP_CRR
TCP_CRR,指的是每次数据交易都建立新的连接,例如HTTP
netperf -H 114.212.80.7 -t TCP_CRR -- -r 321024
MIGRATED TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 321024 321024 10.00 110.58
16384 87380
在本地与114.212.80.7两个节点中,每秒基于TCP_CRR的平均数据交易次数为110.58次。
5.UDP_RR
UDP_RR指的是,在基于UDP连接的数据交易情况。
netperf -H 114.212.80.7 -t UDP_RR
MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) port 0 AF_INET : first burst 0
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
124928 124928 1 1 10.00 4864.31
110592 110592
netperf -H 114.212.80.7 -t UDP_RR -- -r 51200
MIGRATED UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 114.212.80.7 (114.212.80.7) port 0 AF_INET : first burst 0
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
124928 124928 51200 51200 10.00 798.70
110592 110592
阅读(2017) | 评论(0) | 转发(0) |