使用iperf3测试网络

 2018年5月27日 22:30   Nick王   运维    0 评论   223 浏览 

环境准备

待测试机器

陪练机N台(本次实验是4台)

安装iperf

工具特点: 收发一体

yum install iperf3 -y

参数解释:

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 CPU 亲和性
  -B, --bind      <host>    bind to a specific interface
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
Client specific:
  -c, --client    <host>    run in client mode, connecting to <host>
  -u, --udp                 表示采用 UDP 协议发送报文,不带该参数表示采用 TCP 协议
  -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited) 设定流量带宽,可选单位包括:k/m/g
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  --fq-rate #[KMG]          enable fair-queuing based socket pacing in
                            bits/sec (Linux only)
  -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
                            表示包大小,默认单位为 Byte。通常测试 PPS 的时候该值为 16,测试 bps 时该值为 1400。
                            (default 128 KB for TCP, dynamic or 1 for UDP)
  --cport         <port>    bind to a specific client port (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size

测试收方向(RX 下行)

在测试机中以 server 模式启动 iperf3 进程:

iperf3 -s -i 1 -p 16001
iperf3 -s -i 1 -p 16002
iperf3 -s -i 1 -p 16003
iperf3 -s -i 1 -p 16004

在陪练机中以 client 模式启动 iperf3 进程,分别指向测试机的不同端口(UDP模式, 包大小为16B, 用于测试PPS):

iperf3 -u -l 16 -b 100m -t 120 -c 10.2.30.203 -i 1 -p 16001 -A 1  # 第一台陪练机
iperf3 -u -l 16 -b 100m -t 120 -c 10.2.30.203 -i 1 -p 16002 -A 2  # 第二台陪练机
iperf3 -u -l 16 -b 100m -t 120 -c 10.2.30.203 -i 1 -p 16003 -A 3  # 第三台陪练机
iperf3 -u -l 16 -b 100m -t 120 -c 10.2.30.203 -i 1 -p 16004 -A 4  # 第四台陪练机

发送端测试报告如下:

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-120.00 sec   684 MBytes  47.8 Mbits/sec  0.002 ms  465752/44846135 (1%)
[  4] Sent 44846135 datagrams

iperf Done.

在陪练机使用TCP方式发送大包(8K)测试最大吞吐:

iperf3 -l 8192 -t 120 -c 10.2.30.203 -i 1 -p 16001 -A 1
iperf3 -l 8192 -t 120 -c 10.2.30.203 -i 1 -p 16002 -A 2
iperf3 -l 8192 -t 120 -c 10.2.30.203 -i 1 -p 16003 -A 2
iperf3 -l 8192 -t 120 -c 10.2.30.203 -i 1 -p 16004 -A 2

输出结果:

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-120.00 sec  1.40 GBytes  99.9 Mbits/sec   58             sender
[  4]   0.00-120.00 sec  1.40 GBytes  99.9 Mbits/sec                  receiver

iperf Done.

测试结果

UDP用于测试丢包率,延迟,和PPS,建议采用sar -n DEV 1进行监控:

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-120.00 sec   684 MBytes  47.8 Mbits/sec  0.002 ms  465752/44846135 (1%)
[  4] Sent 44846135 datagrams

iperf Done.
  • 684 MBytes传输的总数据量

  • 47.8 Mbits/sec带宽

  • 0.002 ms波动率

  • 465752/44846135丢包/总报文数

  • 1%丢包率

TCP用于测试吞吐量:

- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-120.00 sec  80.7 GBytes  5.77 Gbits/sec  943             sender
[  4]   0.00-120.00 sec  80.6 GBytes  5.77 Gbits/sec                  receiver

iperf Done.

第一行为发送的数据,第二行为接收的数据。吞吐为5.77 Gbits/sec,重试了943次。


注意带宽的设置。和数据长度的设置。数据包越大,网络利用率越好。





如无特殊说明,文章均为本站原创,转载请注明出处