netperf 学习笔记
Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据
用来测试批量(bulk)网络流量的性能
工作原理
-
Netperf 工具以client/server方式工作。
-
server端是netserver,用来侦听来自client端的连接。
-
client端是netperf,用来向server发起网络测试。
server端用来接收,client端用来发送
工作流程
建立控制连接
- server端netserver启动监听,监听来自client端netperf 的连接请求
- client端向server端发送控制连接请求,server端发现连接请求,建立控制连接
- 控制连接创建完成,传输信息
建立测试连接
- client端通过控制连接向server端传递测试配置信息
- server端获取测试配置信息,建立测试连接
- 测试连接用于传输各种模式的流量测试网络的性能
测试网络性能
- client端通过测试连接向server端发送数据
- server端接收数据
输出测试结果
- server端通过控制连接向client端发送测试结果
- client端接受到测试结果并显示或保存
语法格式
只介绍常见的一些参数,*代表着该参数需要进行替换
netperf -t testname* -H ip* -l testlen* -m size* -r group_size*
testname为需要测试的名称
ip为ip
testlen为指定测试的时间长度
size为本地系统发送测试分组的大小,测试PPS时值小于1400。测试BPS(带宽)时值为1400。
group_size为设置request和reponse分组的大小
示例
172.16.16.16 为server
172.16.16.2、172.16.16.1为client
UDP带宽
netperf -t UDP_STREAM -H 172.16.16.16 -l 6000 -- -m 1424 -R 1
可对应修改测TCP的
UDP的PPS
netperf -t UDP_STREAM -H 172.16.16.16 -l 6000 -- -m 64 -R 1
可对应修改测 TCP的
TCP RR测试
测试对象是多次TCP request和response的交易过程,但是它们发生在同一个TCP连接中
netperf -t TCP_RR -H 172.16.16.16 -l 10000 -- -r 32,128 -R 1 &
可对应修改测 UDP的
TCP CRR测试
TCP_CRR为每次交易建立一个新的TCP连接。最典型的应用就是HTTP,每次HTTP交易是在一条单独的TCP连接中进行的。因此,由于需要不停地建立新的TCP连接,并且在交易结束后拆除TCP连接,交易率一定会受到很大的影响。
netperf -t TCP_CRR -H 172.16.16.16 -l 10000 -- -r 32,128 -R 1 &
可对应修改测 UDP的
参考资料
https://www.jianshu.com/p/42e0fa6bf79c