feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

网络性能测试工具iperf的注意事项

Posted on 2011-11-12 18:55  feisky  阅读(3581)  评论(0编辑  收藏  举报

什么是Iperf?

    Iperf  是一个网络性能测试工具。Iperf可以测试最大TCP带宽,并可以报告UDP带宽,延迟抖动和数据包丢失。具体的功能包括

  • TCP
  1. 测量网络带宽
  2. 报告MSS/MTU值的大小和观测值
  3. 支持TCP窗口值通过套接字缓冲
  4. 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
  • l  UDP
  1. 客户端可以创建指定带宽的UDP流
  2. 测量丢包
  3. 测量延迟
  4. 支持多播
  5. 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
  6. 在适当的地方,选项中可以使用K(kilo-)和M(mega-)。例如131072字节可以用128K代替。
  7. 指定运行的总时间,甚至可以设置传输的数据总量。
  8. 在报告中,为数据选用最合适的单位。
  9. 服务器支持多重连接,而不是等待一个单线程测试。
  10. 在指定时间间隔重复显示网络带宽,波动和丢包情况。
  11. 服务器端可作为后台程序运行。
  12. 服务器端可作为Windows 服务运行。
  13. 使用典型数据流来测试链接层压缩对于可用带宽的影响。

参数:
-s 以server模式启动,eg:iperf -s

-c host以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
-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协议
-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 单独进行双向传输测试
-t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5
-F 指定需要传输的文件
-T 指定ttl值

使用示例:

1、UDP 模式

服务器端
iperf -u -s

客户端
 iperf -c 192.168.1.1 -u -P 1 -i 1 -p 5001 -f M -b 45M -t 20 -T 10
在udp模式下,以45Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为20秒。
iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60
客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。
iperf -u -c 192.168.1.1 -b 100M -d -t 60
以100M为数据发送速率,进行上下行带宽测试。

2、TCP模式
服务器端
iperf -s
客户端
 iperf -c 192.168.1.1 -P 1 -i 5 -p 5001 -f M -t 120
在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为120秒。
iperf -c 192.168.1.1 -P 30 -t 60
客户端同时向服务器端发起30个连接线程。
iperf -c 192.168.1.1 -d -t 60
进行上下行带宽测试。

Jperf: iperf的GUI

 

注意:

  1. 测试htb的时候最好用udp,udp通信开销小,测试的带宽更准确
  2. 带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从 客户端到服务器之间的链路的理论带宽为100Mbps,先用 -b 100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很 多,重复测试几次,就能得出稳定的实际带宽。

Reference:

the quality of a link can be tested as follows:
- Latency (response time or RTT): can be measured with the Ping command.
- Jitter (latency variation): can be measured with an Iperf UDP test.
- Datagram loss: can be measured with an Iperf UDP test.

 

无觅相关文章插件,快速提升流量