zoukankan      html  css  js  c++  java
  • linux测试带宽命令,Linux服务器网络带宽测试iperf

    linux测试带宽命令,Linux服务器网络带宽测试iperf
    必须先运行iperf server
    iperf -s -i 2
    客户端
    iperf -c 服务端IP地址

    iperf原理解析

    iperf工具可以用来测量TCP或者是UDP的网络吞吐量,即bandwidth(带宽)测试。 

    iPerf的主要目标是帮助调整特定路径上的TCP连接。 众所周知,TCP最基本的调整问题是调整TCP窗口大小,它控制在任何一点在网络中可以有多少数据。如果它太小,发送者将会在一段时间内处于空闲状态,从而影响发送TCP的性能。TCP窗口大小的理论值是:瓶颈带宽与往返延时的乘积,即:

    bottleneck bandwidth * round trip time

    例如瓶颈链路是45 Mbit/sec,使用ping命令测量到的往返时延是42ms。那么TCP窗口的理论值是

    45 Mbit/sec * 42 ms = (45e6) * (42e-3) = 1890000 bits= 230 KByte

    在实际测试中,可以以计算得到的TCP窗口为基准,在这个值(如上面为230KByte)的基础上,升高或者降低TCP窗口大小,可以得到一个性能的提升。   带宽测试一般来说采用UDP模式测试,因为在UDP模式下能测出极限带宽、路径时延、丢包率,这些测试项会在带宽测试报告中打印出来。

    在进行测试时,先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为1000Mbps,先用 -b 1000M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。 

    iperf是基于server-client模式工作的,因此,要使用iperf测试带宽,需要建立一个服务端(用于丢弃流量)和一个客户端(用于产生流量)。

    iperf服务端或者是客户端,都是使用的同一个命令,不过是启动命令的选项不同而已。

    1. iperf服务启动方式

    先看下服务端和客户端的启动方式:

    服务端

    iperf -s

    客户端

    iperf -c 服务端IP地址

    注意:iperf默认测试的是TCP协议的带宽,如果需要测试UDP的带宽,则需要加上-u选项

    2. iperf常用选项 

      iperf选项分为 通用选项、服务端特定选项以及客户端特定选项

    通用选项

    -f <kmKM>    报告输出格式。 [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes

    -i <sec>    在周期性报告带宽之间暂停n秒。如周期是10s,则-i指定为2,则每隔2秒报告一次带宽测试情况,则共计报告5次

    -p    设置服务端监听的端口,默认是5001

    -u    使用UDP协议测试

    -w n<K/M>   指定TCP窗口大小

    -m    输出MTU大小

    -M    设置MTU大小

    -o <filename>    结果输出至文件

    服务端选项

    -s    iperf服务器模式

    -d    以后台模式运行服务端

    -U    运行一个单一线程的UDP模式

    客户端选项

    -b , --bandwidth n[KM]    指定客户端通过UDP协议发送数据的带宽(bit/s)。默认是1Mbit/s

    -c <ServerIP>    以客户端模式运行iperf,并且连接至服务端主机ServerIP。 eg:  iperf -c <server_ip>

    -d    双向测试

    -t    指定iperf带宽测试时间,默认是10s。  eg:  iperf -c <server_ip> -t 20

    -P    指定客户端并发线程数,默认只运行一个线程。 eg,指定3个线程 : iperf -c <server_ip> -P 3

    -T    指定TTL值

    3.实例

    master 为服务端 

    minion 为客户端 

    注意:必须先运行iperf server

    2秒返回一次带宽测试报告

    # iperf -c 120.24.25.65

    ------------------------------------------------------------

    Client connecting to 120.24.25.65, TCP port 5001

    TCP window size: 19.3 KByte (default)

    ------------------------------------------------------------

    [  3] local 113.58.113.136 port 49959 connected with 120.24.25.65 port 5001

    [ ID] Interval       Transfer     Bandwidth

    [  3]  0.0-10.3 sec  3.12 MBytes  2.54 Mbits/sec

    [root@iZwz96l7gxttha3j1hk494Z ~]# iperf -s -i 2

    ------------------------------------------------------------

    Server listening on TCP port 5001

    TCP window size: 85.3 KByte (default)

    ------------------------------------------------------------

    [  4] local 113.58.113.136 port 5001 connected with 120.24.25.65 port 56238

    [ ID] Interval       Transfer     Bandwidth

    [  4]  0.0- 2.0 sec   792 KBytes  3.24 Mbits/sec

    [  4]  2.0- 4.0 sec   561 KBytes  2.30 Mbits/sec

    [  4]  4.0- 6.0 sec   513 KBytes  2.10 Mbits/sec

    [  4]  6.0- 8.0 sec   609 KBytes  2.50 Mbits/sec

    [  4]  8.0-10.0 sec   529 KBytes  2.17 Mbits/sec

    [  4]  0.0-11.3 sec  3.25 MBytes  2.41 Mbits/sec

  • 相关阅读:
    20155213 2016-2017-2 《Java程序设计》第五周学习总结
    20155213 2016-2017-2《Java程序设计》第四周学习总结
    20155213 2016-2017-2《Java程序设计》第三周学习总结
    20155213 2016-2017-2 《Java程序设计》第二周学习总结
    20145109《Java程序设计》第一周学习总结
    《暗时间》读书笔记(三)
    调查问卷
    《Python学习手册》(四)
    《Python学习手册》(三)
    20165322 第五周学习总结
  • 原文地址:https://www.cnblogs.com/zdz8207/p/linux-iperf.html
Copyright © 2011-2022 走看看