使用iperf测试网络性能
作者:网络转载 发布时间:[ 2014/1/26 11:18:34 ] 推荐标签:网络性能 性能测试
iperf测试案例介绍
4. iperf主要参数
iperf中的可选参数比较多,具体可以参见其用户手册。
http://webfolder.wirelessleiden.nl/iperf/
一般来说,我们在做性能测试的时候需要指定包长,不同的包长会得到不同的吞吐量,通过-l指定,而使用-b指定带宽。
5. 测试吞吐量,抖动和丢包率
如何需要同时测试以上三个参数,那么只能通过UDP获得。使用-u参数进行UDP测试(iperf默认为TCP)。
在测试的后server端会给出一个报告。
[ 3] local 192.168.1.1 port 2152 connected with 192.168.101.2 port 56768
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 1.40 MBytes 11.7 Mbits/sec 0.069 ms 0/14671 (0%)
[ 3] 1.0- 2.0 sec 1.40 MBytes 11.8 Mbits/sec 0.050 ms 0/14703 (0%)
[ 3] 2.0- 3.0 sec 1.40 MBytes 11.8 Mbits/sec 0.052 ms 0/14708 (0%)
[ 3] 3.0- 4.0 sec 1.40 MBytes 11.8 Mbits/sec 0.057 ms 0/14704 (0%)
[ 3] 4.0- 5.0 sec 1.40 MBytes 11.8 Mbits/sec 0.072 ms 0/14706 (0%)
[ 3] 5.0- 6.0 sec 1.40 MBytes 11.8 Mbits/sec 0.075 ms 0/14705 (0%)
[ 3] 6.0- 7.0 sec 1.40 MBytes 11.8 Mbits/sec 0.060 ms 0/14707 (0%)
[ 3] 7.0- 8.0 sec 1.40 MBytes 11.8 Mbits/sec 0.073 ms 0/14703 (0%)
[ 3] 8.0- 9.0 sec 1.40 MBytes 11.8 Mbits/sec 0.073 ms 0/14706 (0%)
[ 3] 0.0-10.0 sec 14.0 MBytes 11.8 Mbits/sec 0.064 ms 0/147020 (0%)
要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽是被测系统的吞吐量。
6. 测试时延
那么有朋友会问,iperf不能用来测试时延,而时延又是比较重要的QOS参数,有什么办法吗?
其实简单的办法是使用Ping程序。我们经常用它来测试特定主机能否通过IP到达,
程序会按时间和反应成功的次数,估计丢包率和分组来回时间(即网络时延)。
当然,如果我们能成功构造一个回环测试路径,那么测试时延轻而易举了,我们可以使用iperf发送数据,同时结合tcpdump抓包工具,经过wireshark分析.cap文件可以得出包来回时间,也是往返时延。
7. 使用TCP测试带宽应注意的问题
有时候,我们需要使用TCP来测试网络带宽。这里有一个参数需要特别注意,那是TCP窗口大小,可以使用-w参数指定。
网络通道的容量capacity = bandwidth * round-trip time
而理论TCP窗口的大小是网络通道的容量。
比如,网络带宽为40Mbit/s,回环路径消耗时间是2ms,那么TCP的窗口大小不小于40Mbit/s×2ms = 80kbit = 10Kbytes
此时我们可以查询iperf默认的TCP窗口大小来决定是否需要设置此参数,在此例中,窗口大小应设计大于10Kbytes,当然,这仅仅是理论值,在实际测试中可能需要作出调整。
参数说明
-s 以server模式启动,eg:iperf -s
-c 以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
通用参数
-f [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K
-i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2
iperf是client端向server端发送数据
server端显示的是接收速率,好加i参数,进行速率跟踪
client 显示的是发送速率
server 显示接收速率
-l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16
可以使用不同的包长,进行测试
-m 显示tcp大mtu值
-o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o c:iperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999
-u 使用udp协议
测试htb的时候好用udp,udp通信开销小,测试的带宽更准确
-w 指定TCP窗口大小,默认是8KB
如果窗口太小,有可能丢包
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包
server专用参数
-D 以服务方式运行ipserf,eg:iperf -s -D
-R 停止iperf服务,针对-D,eg:iperf -s -R
client端专用参数
-d 同时进行双向传输测试
-n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000
-r 单独进行双向传输测试
-b 指定发送带宽,默认是1Mbit/s
在测试qos的时候,这是有用的参数。
-t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5
默认是10s
-F 指定需要传输的文件
-T 指定ttl值
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11