在这篇文章中:

    Linux-网络性能测试

    操作场景

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

    衡量指标

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

    • Bandwidth
    • Retr/Retransmits

    测试工具

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

    TCP

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

    UDP

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

    工具安装

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

    1
    2
    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编译

    1
    2
    $ ./configure
    $ make && make install

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

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

    参数说明

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

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

    -c 以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值

    工具使用

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

    Server端:192.168.44.9

    Client端:192.168.44.12

    1)Server端执行:iperf -s

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

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