zoukankan      html  css  js  c++  java
  • 网络性能测试工具iperf的注意事项

    什么是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.

  • 相关阅读:
    Simpo
    Numpy技巧
    流程图
    注册免费试用12个月的亚马逊AWS云计算服务
    java-Collection
    CoreGraphic
    吴裕雄--天生自然python学习笔记:python 用pygame模块开发俄罗斯方块游戏
    吴裕雄--天生自然python学习笔记:python 用pygame模块检测键盘事件和鼠标事件
    吴裕雄--天生自然python学习笔记:python 用pygame模块角色类(Sprite)移动与碰撞
    吴裕雄--天生自然python学习笔记:python 用pygame模块动画一让图片动起来
  • 原文地址:https://www.cnblogs.com/feisky/p/2246626.html
Copyright © 2011-2022 走看看