• iperf/iperf3网络测试工具的安装与使用


    1.官网及下载路径:

    iperf3 homepage at: http://software.es.net/iperf/
    Report bugs to: https://github.com/esnet/iperf

    2.iperf3命令选项

    [ubuntu @meta]$ iperf3 
    iperf3: parameter error - must either be a client (-c) or server (-s)
    
    Usage: iperf [-s|-c host] [options]
           iperf [-h|--help] [-v|--version]
    
    Server or Client:
      -p, --port      #         server port to listen on/connect to
      -f, --format    [kmgKMG]  format to report: Kbits, Mbits, KBytes, MBytes
      -i, --interval  #         seconds between periodic bandwidth reports
      -F, --file name           xmit/recv the specified file
      -A, --affinity n/n,m      set CPU affinity
      -B, --bind      <host>    bind to a specific interface
      -V, --verbose             more detailed output
      -J, --json                output in JSON format
      -d, --debug               emit debugging output
      -v, --version             show version information and quit
      -h, --help                show this message and quit
    Server specific:
      -s, --server              run in server mode
      -D, --daemon              run the server as a daemon
    Client specific:
      -c, --client    <host>    run in client mode, connecting to <host>
      -u, --udp                 use UDP rather than TCP
      -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
                                (default 1 Mbit/sec for UDP, unlimited for TCP)
                                (optional slash and packet count for burst mode)
      -t, --time      #         time in seconds to transmit for (default 10 secs)
      -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
      -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
      -l, --len       #[KMG]    length of buffer to read or write
                                (default 128 KB for TCP, 8 KB for UDP)
      -P, --parallel  #         number of parallel client streams to run
      -R, --reverse             run in reverse mode (server sends, client receives)
      -w, --window    #[KMG]    TCP window size (socket buffer size)
      -C, --linux-congestion <algo>  set TCP congestion control algorithm (Linux only)
      -M, --set-mss   #         set TCP maximum segment size (MTU - 40 bytes)
      -N, --nodelay             set TCP no delay, disabling Nagle's Algorithm
      -4, --version4            only use IPv4
      -6, --version6            only use IPv6
      -S, --tos N               set the IP 'type of service'
      -L, --flowlabel N         set the IPv6 flow label (only supported on Linux)
      -Z, --zerocopy            use a 'zero copy' method of sending data
      -O, --omit N              omit the first n seconds
      -T, --title str           prefix every output line with this string
      --get-server-output       get results from server
    
    [KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-
    iperf3 homepage at: http://software.es.net/iperf/
    Report bugs to:     https://github.com/esnet/iperf

    3.iperf3的测试例子

    测试1:
    一台电脑本地回环测试
    打开两个终端t1和t2,在t1中输入命令:iperf3 -s 在t2中输入命令: iperf3 -c 127.0.0.1 -t 5
    本例中t2向t1发送5秒中的数据包
    测试2:
    一台电脑的实际网卡:
    打开两个终端t1和t2,在t1中输入命令:iperf3 -s 在t2中输入命令: iperf3 -c 10.219.119.21
    测试3:
    两台电脑之间发包测试,在电脑A中打开终端t1,在电脑B中打开终端t2,确保两台电脑在同一个局域网中并假设t1的IP地址为192.168.1.123,t2的IP地址为192.168.1.124
    在t1中输入命令: iperf3 -s 在t2中输入命令: iperf3 -c 192.168.1.123 -t 5
    如果出现错误iperf3: error - unable to connect to server: No route to host,请修改电脑A的防火墙规则。
    
    防火墙规则修改方法:
    防火墙会阻止两台电脑之间的通信。centos7.0自带的防火墙为firewalld,可以先把firewalld删除,再安装iptalbes。
    在t1中输入以下两条的命令来停用firewalld: 
    1.删除firewalld的命令如下
    sudo systemctl stop firewalld //关闭
    sudo systemctl disable firewalld //禁止开机启动
    2.安装iptables的命令如下 
    sudo yum install -y iptables-services.x86_64 iptables-devel.x86_64
    重新测试iperf3,在t1中输入命令: 
    sudo iptables -I INPUT 1 -s 192.168.1.124 -j ACCEPT
    sudo service iptables save
    iperf3 -s
    在t2中输入命令: 
    iperf3 -c 192.168.1.123 -t 5
    3. Apple手机测试
    开发板host,ip:172.27.0.25,App手机做client:
    测试UDP:
    开发板:# iperf -V -s -u
    手机:iperf -p 5001 -l 1448 -w 131072 -i 1.0 -u -c 172.27.0.25 -t 10.0 -b 100m
    测试TCP:
    开发板:# iperf -V -s
    手机:iperf -p 5001 -l 131072 -w 131072 -i 1.0 -c 172.27.0.25 -t 10.0
    
    开发板client,App手机做service,ip:172.27.0.165
    测试TCP:
    开发板:# iperf -c 172.27.0.165 -w 128k -t 10.0 -i 1.0 -p 6001
    手机:# iperf -p 6001 -l 131072 -w 131072 -i 1.0 -s
    测试UDP:
    开发板:# iperf -c 172.27.0.165 -w 128k -t 10.0 -i 1.0 -p 6001 -l 1448 -u -b 50m
    手机:# iperf -p 6001 -l 1448 -w 131072 -i 1.0 -u -s

    4.iperf3卸载
    查看所有已经安装的软件:
    sudo yum list installed
    删除iperf3:
    sudo yum -y remove iperf3.x86_64

    5.软件包中的test_command.sh

    #!/bin/sh
    #
    # This is a set of commands to run and verify they work before doing a new release.
    # Eventually they should also use the -J flag to generate JSON output, and a program should 
    # be written to check the output.
    # Be sure to test both client and server on Linux, BSD, and OSX
    #
    
    if [ $# -ne 1 ]
    then
      echo "Usage: `basename $0` hostname"
      exit $E_BADARGS
    fi
    
    set -x
    
    host=$1
    
    # basic testing
    ./src/iperf3 -c $host -V -t 5 -T "test1"
    ./src/iperf3 -c $host -u -V -t 5
    # omit mode
    ./src/iperf3 -c $host -i .3 -O 2 -t 5
    # JSON mode
    ./src/iperf3 -c $host -i 1 -J -t 5
    # force V4
    ./src/iperf3 -c $host -4 -t 5
    ./src/iperf3 -c $host -4 -u -t 5
    # force V6
    ./src/iperf3 -c $host -6 -t 5
    ./src/iperf3 -c $host -6 -u -t 5
    # parallel streams
    ./src/iperf3 -c $host -P 3 -t 5 
    ./src/iperf3 -c $host -u -P 3 -t 5
    # reverse mode
    ./src/iperf3 -c $host -P 2 -t 5 -R
    ./src/iperf3 -c $host -u -P 2 -t 5 -R
    # zero copy
    ./src/iperf3 -c $host -Z -t 5 
    ./src/iperf3 -c $host -Z -t 5 -R
    # window size
    ./src/iperf3 -c $host -t 5 -w 8M 
    # -n flag
    ./src/iperf3 -c $host -n 5M  
    ./src/iperf3 -c $host -n 5M -u -b1G
    # conflicting -n -t flags
    ./src/iperf3 -c $host -n 5M -t 5
    # -k mode
    ./src/iperf3 -c $host -k 1K  
    ./src/iperf3 -c $host -k 1K -u -b1G
    # CPU affinity
    ./src/iperf3 -c $host -A 2/2
    ./src/iperf3 -c $host -A 2/2 -u -b1G
    # Burst mode
    ./src/iperf3 -c $host -u -b1G/100
    # change MSS
    ./src/iperf3 -c $host -M 1000 -V
    # test congestion control option (linux only)
    ./src/iperf3 -c $host -C reno -V

    6. 若网络媒体出现卡顿可以是用iperf测试卡顿时网络的带宽,以定位是否是底层问题。

  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/9350606.html
Copyright © 2020-2023  润新知