更新时间:2026-09-03 GMT+08:00
分享

云服务器网络性能测试指导

操作场景

本文介绍如何测试云服务器网络数据面性能,包含如下内容:

前提条件

  • 准备2台规格一致的云服务器。
  • 云服务器运行状态正常。
  • 云服务器已绑定弹性公网IP。
  • 云服务器内部已安装wget、tar工具,如果没有安装请执行以下命令进行安装:
    yum install -y wget tar

测试网络时延(ping、udp、tcp时延)

  1. 安装和编译测试工具qperf。

    测试网络时延,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。

      HCE OS、CentOS等操作系统:

      sudo yum install qperf

      Ubuntu操作系统:

      sudo apt install qperf
    3. 测试工具。

      安装完成后,在一台云服务器上执行以下命令,使其作为服务器(server)端。

      sudo qperf

      然后在另一台作为客户(client)端的云服务器上通过以下命令进行连接并运行测试。

      qperf [服务器地址] tcp_lat udp_lat  -t 20 -m 64 -vvu

  2. 测试网络时延。

    1. 在server端,执行以下命令,运行测试工具。
      qperf &
    2. 在client端,执行以下命令。
      qperf [server端服务器ip地址] -t 60  tcp_lat udp_lat   -m 64  -vvu

      其中,-t为测试时长,单位为s。

    3. 在client端,执行以下命令。
      ping [server端服务器ip地址] -c 120

      其中,-c 为测试时长,单位为s。

    测试结束后qperf执行语句以返回的latency为测试结果,ping执行语句以rtt中的avg时延为测试结果,并分别测试三次取平均值。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看网络时延测试结果。

    在输出结果中,如下指标用于评估云服务器的网络时延:

    • tcp时延:qperf执行语句tcp_lat中的latency
    • udp时延:udp_lat中的latency
    • ping时延:ping执行语句中rtt中的avg时延

    示例以HCE OS 2.0操作系统为例介绍网络时延测试的结果:

    表1 网络时延测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    tcp时延

    23 us

    udp时延

    24 us

    ping时延

    0.08 ms

测试接收带宽

  1. 安装和编译测试工具netperf。

    测试接收带宽,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。
      • 方法一:

        HCE OS、CentOS等操作系统:

        sudo yum install netperf

        Ubuntu操作系统:

        sudo apt install netperf
      • 方法二:
        wget https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.zip
        unzip netperf-2.7.0.zip
        cd netperf-netperf-2.7.0/
        ./configure && make && make install
    3. 测试工具。

      安装完成后,在一台云服务器上执行以下命令,使其作为服务器(server)端。

      netperf -p 5001

      然后在另一台作为客户(client)端的云服务器上通过以下命令进行连接并运行测试。

      netperf -H [服务器ip地址] -t TCP_STREAM -l 15  -p 5001 -- -m 1440

      其中,-l为测试时长,单位为s。

      图1 工具测试结果

  2. 测试接收带宽。

    1. 在server端,执行以下命令。
      for i in `seq 5001 5128`; do netserver  -p $i & done

      其中,-p为测试端口,打流的条数通常为云服务器队列数的2~3倍。

    2. 在client端,执行以下命令。
      for i in `seq 5001 5128`; do netperf -H [server端服务器ip地址] -t TCP_STREAM -l 300  -p $i -- -m 1440 & done
    3. 在server端,执行以下命令。
      sar -n DEV 1 180

      表示每1秒采集一次,共采集180s。

    测试结束后,观测云服务器接收带宽指标,共测试三次取平均值。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看接收带宽测试结果。

    在输出结果中,关注server端服务器的接收带宽结果。

    Average中的rxkB/s值为接收带宽temp,将结果换算成Gbps,换算公式temp/1000000 *8。

    示例以HCE OS 2.0操作系统为例介绍接收带宽测试的结果:

    表2 接收带宽测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    接收带宽

    11Gbps

测试发送带宽

  1. 安装和编译测试工具netperf。

    测试发送带宽,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。
      • 方法一:

        HCE OS、CentOS等操作系统:

        sudo yum install netperf

        Ubuntu操作系统:

        sudo apt install netperf
      • 方法二:
        wget https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.zip
        unzip netperf-2.7.0.zip
        cd netperf-netperf-2.7.0/
        ./configure && make && make install
    3. 测试工具。

      安装完成后,在一台云服务器上执行以下命令,使其作为服务器(server)端。

      netperf -p 5001

      然后在另一台作为客户(client)端的云服务器上通过以下命令进行连接并运行测试。

      netperf -H [服务器ip地址] -t TCP_STREAM -l 15  -p 5001 -- -m 1440

      其中,-l为测试时长,单位为s。

      图2 工具测试结果

  2. 测试发送带宽。

    1. 在client端,执行以下命令。
      for i in `seq 5001 5128`; do netserver  -p $i & done

      其中,-p为测试端口,打流的条数通常为云服务器队列数的2~3倍。

    2. 在server端,执行以下命令。
      for i in `seq 5001 5128`; do netperf -H [client端服务器ip地址] -t TCP_STREAM -l 300  -p $i -- -m 1440 & done
    3. 在server端,执行以下命令。
      sar -n DEV 1 180

      表示每1秒采集一次,共采集180s。

    测试结束后,观测云服务器发送带宽指标,共测试三次取平均值。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看发送带宽测试结果。

    在输出结果中,关注server端服务器的发送带宽结果。

    Average中的txkB/s值为接收带宽temp,可以将结果换算成Gbps,换算公式temp/1000000 *8。

    示例以HCE OS 2.0操作系统为例介绍发送带宽测试的结果:

    表3 发送带宽测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    发送带宽

    11Gbps

测试接收PPS

  1. 安装和编译测试工具iperf。

    测试接收PPS,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。
      • 方法一:

        HCE OS、CentOS等操作系统:

        sudo yum install iperf3

        Ubuntu操作系统:

        sudo apt-get install iperf3
      • 方法二:
        wget --no-check-certificate https://codeload.github.com/esnet/iperf/zip/master -O iperf3.zip
        unzip iperf3.zip
        cd iperf-master/
        ./configure && make && make install
    3. 测试工具。

      安装完成后,在一台云服务器上执行以下命令,使其作为服务器(server)端。

      iperf3 -s -p 5001

      然后在另一台作为客户(client)端的云服务器上通过以下命令进行连接并运行测试。

      iperf3 -c  [服务器ip地址]  -u -t 300 -l 64 -p 5001

      其中,-u为udp测试打流,-t为测试时长,单位为s,-p是打流端口号。

      图3 工具测试结果

  2. 测试接收PPS。

    1. 在server端,执行以下命令。
      for i in `seq 5001 5128`; do iperf3 -s -p $i  > /dev/null 2>&1 & done

      其中,-p为测试端口,打流的条数通常为云服务器队列数的2~3倍。

    2. 在client端,执行以下命令。
      for i in `seq 5001 5128`; do iperf3 -c  [server端服务器ip地址] -b 0M -u -t 300 -l 64 -p $i   > /dev/null 2>&1 & done
    3. 在server端,执行以下命令。
      sar -n DEV 1 180

      表示每1秒采集一次,共采集180s。

    测试结束后,观测云服务器接收PPS指标,共测试三次取平均值。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看接收PPS测试结果。

    在输出结果中,关注server端服务器的接收PPS结果。

    Average中的rxpck/s 值为接收PPS(单位:个)。

    示例以HCE OS 2.0操作系统为例介绍接收PPS测试的结果:

    表4 接收PPS测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    接收PPS

    1001017.45

测试发送PPS

  1. 安装和编译测试工具iperf。

    测试发送PPS,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。
      • 方法一:

        HCE OS、CentOS等操作系统:

        sudo yum install iperf3

        Ubuntu操作系统:

        sudo apt-get install iperf3
      • 方法二:
        wget --no-check-certificate https://codeload.github.com/esnet/iperf/zip/master -O iperf3.zip
        unzip iperf3.zip
        cd iperf-master/
        ./configure && make && make install
    3. 测试工具。

      安装完成后,在一台云服务器上执行以下命令,使其作为服务器(server)端。

      iperf3 -s -p 5001

      然后在另一台作为客户(client)端的云服务器上通过以下命令进行连接并运行测试。

      iperf3 -c  [服务器ip地址]  -u -t 300 -l 64 -p 5001

      其中,-u为udp测试打流,-t为测试时长,单位为s,-p是打流端口号。

      图4 工具测试结果

  2. 测试发送PPS。

    1. 在client端,执行以下命令。
      for i in `seq 5001 5128`; do iperf3 -s -p $i   > /dev/null 2>&1 & done

      其中,-p为测试端口,打流的条数通常为云服务器队列数的2~3倍。

    2. 在server端,执行以下命令。
      for i in `seq 5001 5128`; do iperf3 -c  [client端服务器ip地址] -b 0M -u -t 300 -l 64 -p $i   > /dev/null 2>&1 & done
    3. 在server端,执行以下命令。
      sar -n DEV 1 180

      表示每1秒采集一次,共采集180s。

    测试结束后,观测云服务器发送PPS指标,共测试三次取平均值。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看发送PPS测试结果。

    在输出结果中,关注server端服务器的发送PPS结果。

    Average中的rxpck/s值为发送PPS(单位:个)。

    示例以HCE OS 2.0操作系统为例介绍发送PPS测试的结果:

    表5 发送PPS测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    发送PPS

    1001028.23

测试新建连接

  1. 安装和编译测试工具netperf。

    测试新建连接,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。
      • 方法一:

        HCE OS、CentOS等操作系统:

        sudo yum install netperf

        Ubuntu操作系统:

        sudo apt install netperf
      • 方法二:
        wget https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.zip
        unzip netperf-2.7.0.zip
        cd netperf-netperf-2.7.0/
        ./configure && make && make install
    3. 测试工具。

      安装完成后,在一台云服务器上执行以下命令,使其作为服务器(server)端。

      netperf -p 5001

      然后在另一台作为客户(client)端的云服务器上通过以下命令进行连接并运行测试。

      netperf -H [服务器ip地址] -t TCP_STREAM -l 15  -p 5001 -- -m 1440

      其中,-l为测试时长,单位为s。

      图5 工具测试结果

  2. 测试新建连接。

    1. 在server端,执行以下命令。
      for i in `seq 9001 9256`; do netserver  -p $i & done

      其中,-p为测试端口。

    2. 在client端,执行以下命令。
      for i in `seq 9001 9256`; do netperf -H [server端服务器ip地址] -t TCP_CRR -l 20  -p $i -- -r 64 2>&1 >>tcp_crr_22.log & done
    3. 在client端,执行以下命令。
      cat tcp_crr_22.log |grep 20 |awk '{print $6}' |awk '{sum+= $1};END {print sum}'

    client端执行步骤2.b的时间>20s后,在client端查看日志,打印出的数据即为新建连接测试结果。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看新建连接测试结果。

    在输出结果中,关注client端日志,打印出的数据即为新建连接。

    Average中的rxpck/s值为发送PPS(单位:个)。

    示例以HCE OS 2.0操作系统为例介绍新建连接测试的结果:

    表6 新建连接测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    新建连接

    21400.6

测试并发连接

  1. 安装和注册二进制文件server、client工具。

    测试并发连接,需要分别在2台云服务器上安装工具。

    1. 远程登录云服务器实例。

      详细操作,请参见Linux BMS登录方式概述

    2. 执行以下命令,下载工具安装包。

      开源工具:

      wget https://github.com/ideawu/c1000k
    3. 测试工具。

      安装完成后,在两台云服务器上分别执行以下命令。

      cd  c1000k
      make
      chmod 777 client server

  2. 测试并发连接。

    1. 在server端,执行以下测试步骤。
      1. 执行以下命令,查看云服务器中的最大连接数。
        ulimit -n
      2. 执行以下命令,修改最大连接数上限。
        sysctl -w fs.nr_open=15000000
        sysctl -w fs.file-max=15000000
        ulimit -n 15000000
        echo "fs.nr_open=15000000" >> /etc/sysctl.conf
        echo "fs.file-max=15000000" >> /etc/sysctl.conf
        echo "* soft nofile 15000000" >> /etc/security/limits.d/huawei-nofile.conf
        echo "* hard nofile 15000000" >> /etc/security/limits.d/huawei-nofile.conf
        echo "* soft nofile 15000000" >> /etc/security/limits.d/20-nproc.conf
        echo "* hard nofile 15000000" >> /etc/security/limits.d/20-nproc.conf
        echo "* soft nofile 15000000" >> /etc/security/limits.conf
        echo "* hard nofile 15000000" >> /etc/security/limits.conf
      3. 执行以下命令。
        for port in $(seq 2000 2000 64000); do
            ./server $port &
        done
    2. 在client端,执行以下测试步骤。
      1. 执行以下命令,查看云服务器中的最大连接数。
        ulimit -n
      2. 执行以下命令,修改最大连接数上限。
        sysctl -w fs.nr_open=15000000
        sysctl -w fs.file-max=15000000
        ulimit -n 15000000
        echo "fs.nr_open=15000000" >> /etc/sysctl.conf
        echo "fs.file-max=15000000" >> /etc/sysctl.conf
        echo "* soft nofile 15000000" >> /etc/security/limits.d/huawei-nofile.conf
        echo "* hard nofile 15000000" >> /etc/security/limits.d/huawei-nofile.conf
        echo "* soft nofile 15000000" >> /etc/security/limits.d/20-nproc.conf
        echo "* hard nofile 15000000" >> /etc/security/limits.d/20-nproc.conf
        echo "* soft nofile 15000000" >> /etc/security/limits.conf
        echo "* hard nofile 15000000" >> /etc/security/limits.conf
      3. 执行以下命令。
        for port in $(seq 2000 2000 64000); do
            ./client <server_ip> $port &
        done
    3. 在server端,重新打开一个登录窗口,执行以下命令进行观测。
      watch "ss -s"

      当数据达到最大,且短时间不变即为最大连接。

    如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。

  3. 查看并发连接测试结果。

    在输出结果中,关注TCP连接数,数据达到最大,且短时间不变即为最大连接,单位:个。

    示例以HCE OS 2.0操作系统为例介绍并发连接测试的结果:

    表7 并发连接测试的结果记录

    云服务器操作系统

    HCE OS 2.0

    Flavor

    xlarge

    规格

    4U8G

    并发连接

    150w

相关文档