所有文档

          云服务器 BCC

          Linux-网络性能测试

          本文主要介绍Linux系统中网络性能测试工具的使用,以Centos7.6为例,主要说明如下(本次测试的参数结果仅作为参考,具体还需结合服务器自身业务情况综合判断)。

          1. 衡量指标
            一般使用以下指标查看网络带宽的性能:

            • Bandwidth
            • Retr/Retransmits
          2. 测试工具
            iperf是一个网络性能测试工具,可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。主要功能如下:
            TCP

            • 测量网络带宽
            • 报告MSS/MTU值的大小和观测值
            • 支持TCP窗口值通过套接字缓冲
            • 当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接

            UDP

            • 客户端可以创建指定带宽的UDP流
            • 测量丢包
            • 测量延迟
            • 支持多播
            • 当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
          3. 工具安装

          1)下载软件包,解压后进入iperf目录,以iperf-3.1.3为例

          $ wget https://iperf.fr/download/source/iperf-3.1.3-source.tar.gz
          $ tar xzvf iperf-3.1.3-source.tar.gz
          $ cd iperf-3.1.3/

          2)make编译

          $ ./configure
          $ make && make install

          如果在make过程中出现报错,可以依照如下的参考,手动同步依赖包。

          //报错信息:iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory
          $ /sbin/ldconfig
          1. 参数说明

          在完成iperf安装后,执行“iperf3 –h”即可显示iperf的详细用法,iperf的命令行选项共分为三类,分别是客户端与服务器端共用选项、服务器端专用选项和客户端专用选项,下面对常用的选项进行介绍。

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

          -chost以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23

          1)通用参数

          -f [kmKM] 分别表示以Kbits,Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -fK

          -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 ciperflog.txt

          -p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p9999

          -u 使用udp协议

          -w 指定TCP窗口大小,默认是8KB

          -B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)

          -C 兼容旧版本(当server端和client端版本不一样时使用)

          -M 设定TCP数据包的最大mtu值

          -N 设定TCP不延时

          -V 传输ipv6数据包

          2)server专用参数

          -D 以服务方式运行iperf,eg:iperf-s -D

          -R 停止iperf服务,针对-D,eg:iperf -s -R

          3)client端专用参数

          -d 同时进行双向传输测试

          -n 指定传输的字节数,eg:iperf -c222.35.11.23 -n 100000

          -r 单独进行双向传输测试

          -t 测试时间,默认10秒,eg:iperf -c222.35.11.23 -t 5

          -F 指定需要传输的文件

          -T 指定ttl值

          1. 工具使用

          以两台服务器为例,进行TCP测试,具体信息如下:

          Server端:192.168.44.9

          Client端:192.168.44.12

          1)Server端执行:iperf -s

          $ iperf3 -s
          -----------------------------------------------------------
          Server listening on 5201
          -----------------------------------------------------------
          Accepted connection from 192.168.44.12, port 60228
          [  5] local 192.168.44.9 port 5201 connected to 192.168.44.12 port 60230
          [ ID] Interval           Transfer     Bandwidth
          [  5]   0.00-1.00   sec   172 MBytes  1.44 Gbits/sec
          [  5]   1.00-2.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   2.00-3.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   3.00-4.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   4.00-5.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   5.00-6.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   6.00-7.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   7.00-8.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   8.00-9.00   sec   179 MBytes  1.50 Gbits/sec
          [  5]   9.00-10.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  10.00-11.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  11.00-12.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  12.00-13.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  13.00-14.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  14.00-15.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  15.00-16.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  16.00-17.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  17.00-18.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  18.00-19.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  19.00-20.00  sec   179 MBytes  1.50 Gbits/sec
          [  5]  20.00-20.06  sec  9.85 MBytes  1.50 Gbits/sec
          -----------------------------------------------------------
          [ ID] Interval           Transfer     Bandwidth
          [  5]   0.00-20.06  sec  0.00 Bytes  0.00 bits/sec                  sender
          [  5]   0.00-20.06  sec  3.50 GBytes  1.50 Gbits/sec                  receiver
          -----------------------------------------------------------
          Server listening on 5201
          -----------------------------------------------------------

          2)client端执行:iperf -c 192.168.44.9 -t 20 -i 2 -d -m

          # iperf3 -c 192.168.44.9 -t 20 -i 2
          Connecting to host 192.168.44.9, port 5201
          [  4] local 192.168.44.12 port 60230 connected to 192.168.44.9 port 5201
          [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
          [  4]   0.00-2.00   sec   362 MBytes  1.52 Gbits/sec    0   2.96 MBytes
          [  4]   2.00-4.00   sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]   4.00-6.00   sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]   6.00-8.00   sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]   8.00-10.00  sec   358 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]  10.00-12.00  sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]  12.00-14.00  sec   359 MBytes  1.50 Gbits/sec   81   3.01 MBytes
          [  4]  14.00-16.00  sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]  16.00-18.00  sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          [  4]  18.00-20.00  sec   359 MBytes  1.50 Gbits/sec    0   3.01 MBytes
          -----------------------------------------------------------
          [ ID] Interval           Transfer     Bandwidth       Retr
          [  4]   0.00-20.00  sec  3.51 GBytes  1.51 Gbits/sec   81             sender
          [  4]   0.00-20.00  sec  3.50 GBytes  1.51 Gbits/sec                  receiver
           
          iperf Done.

          可以从测试结果中看到测试过程中的传输数据量以及带宽信息,关于UDP的测试以及调整测试参数,大家可以依据自身测试需求进行更改。

          上一篇
          Linux-CPU性能测试
          下一篇
          API参考