You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
测试网络性能
使用iPerf3测试网络性能
复制全文
下载 pdf
使用iPerf3测试网络性能
本文介绍如何使用iPerf3测试云服务器的网络性能。​
iPerf3介绍​
iPerf3是用于测试IP网络上最大可用带宽的工具,支持调节时序、缓冲区、协议(TCP,UDP,SCTP与IPv4和IPv6)有关的各种参数。对于每次测试,它都会详细的报告网络带宽,延迟抖动和数据包丢失率。​
操作步骤​
说明​
本文的测试结果仅作为参考,不代表云服务器的真实最优性能。​
步骤一:准备环境​
参考 购买云服务器,准备被测试机器和辅助测试机器。本文测试环境如下表所示:​
​
ECS云服务器​
云服务器信息​
数量​
IP地址​
说明​
被测试机器​
  • 镜像:Debian 10 64位​
  • 规格:ecs.ebmg2i.32xlarge​
1​
172.0.0.1​
被压力测试网络PPS的ECS实例,在iperf3测试中可作为Client端或Server端。​
辅助测试机器​
  • 镜像:Debian 10 64位​
  • 规格:ecs.ebmg2i.32xlarge​
4​
172.0.0.2 ~ 172.0.0.5​
在iperf3测试中作为Client端或Server端,与测试机间建立控制连接,传递测试信息及结果。​
​
说明​
所有ECS云服务器必须在同一个安全组。​
步骤二:安装iperf3​
  1. 分别远程登录被测试机器和辅助测试机器,详细请参见 登录实例。​
  1. 在被测试机器和辅助测试机器,执行以下命令安装iperf3。​
  • ​
    apt update​
    apt install -y iperf3​
    ​
步骤三:测试网络性能​
测试收方向​
  • 被测试机器启动128个iperf3 server进程。​
  • 将128个端口均分给4台辅助测试机器,每个辅助机器启动32个iperf3 client进程。​
  1. 在被测试机器(172.0.0.1)上创建脚本server.sh,并添加可执行权限。​
  1. 执行vim server.sh命令,创建server.sh文件。​
  1. 按i,进入编辑模式。​
  1. 在server.sh文件中,输入如下内容。​
  • ​
    #! /bin/bash​
    ​
    proc_num=$1​
    port_begin=12000​
    ls​
    for ((i=0; i<proc_num; i++))​
    do​
    port=$((port_begin + i))​
    cpu=$((i%$1 + 1))​
    ​
    iperf3 -s -i 1 -p $port -A $(( $cpu % $1 )) -D > /dev/null &​
    done​
    ​
    ​
  1. 按Esc退出编辑模式,然后输入:wq并回车。​
  1. 执行chmod +x server.sh指令,赋予server.sh文件执行权限。​
  1. 在被测试机器(172.0.0.1)上运行./ server.sh 128,启动128个iperf3 server进程。​
  1. 在四台辅助测试机器上创建脚本client.sh,并添加可执行权限。​
  1. 执行vim client.sh命令,创建client.sh文件。​
  1. 按i,进入编辑模式。​
  1. 在client.sh文件中,输入如下内容。​
  • ​
    #! /bin/bash​
    ​
    dst_ip=$1​
    proc_num=$2​
    port_begin=12000​
    ​
    for ((i=0; i<proc_num; i++))​
    do​
    port=$((port_begin + i))​
    iperf3 -c $dst_ip -u -l 16 -b 10000M -i 1 -t 3600 -p $port -A $(( $i % $2)) -P 1 > /dev/null 2>&1 &​
    done​
    ​
说明​
4台辅助测试机器的port_begin需要递增,如:​
172.0.0.2使用12000​
172.0.0.3使用12032​
172.0.0.4使用12064​
172.0.0.5使用12096​
  1. 按Esc退出编辑模式,然后输入:wq并回车。​
  1. 执行chmod +x client.sh指令,赋予client.sh文件执行权限。​
  1. 在四台辅助测试机器分别执行./client.sh 172.0.0.1 32,为每台辅助测试机器启动32个iperf3 client进程。​
  1. 在被测试机器端执行sar -n DEV 1,查看测试结果。​
  • ​alt​​
测试发方向​
  • 128个iperf3 server均分给4台辅助测试机器,每个辅助机器启动32个iperf3 server进程。​
  • 被测试机器(172.0.0.1)分别向每一台辅助测试机器(172.0.0.2~172.0.0.5)启动32个iperf3 client进程打流,总共128个iperf3 client进程。​
  1. 在四台辅助测试机器上创建脚本server.sh,并添加可执行权限。​
  1. 执行vim server.sh命令,创建server.sh文件。​
  1. 按i,进入编辑模式。​
  1. 在server.sh文件中,输入如下内容。​
  • ​
    #! /bin/bash​
    ​
    proc_num=$1​
    port_begin=12000​
    ​
    for ((i=0; i<proc_num; i++))​
    do​
    port=$((port_begin + i))​
    cpu=$((i%$1 + 1))​
    ​
    iperf3 -s -i 1 -p $port -A $(( $cpu % $1 )) -D > /dev/null &​
    done​
    ​
    ​
说明​
4台辅助测试机器的port_begin需要递增,如:​
172.0.0.2使用12000​
172.0.0.3使用12032​
172.0.0.4使用12064​
172.0.0.5使用12096​
  1. 按Esc退出编辑模式,然后输入:wq并回车。​
  1. 执行chmod +x server.sh指令,赋予server.sh文件执行权限。​
  1. 在辅助测试机器上运行./server.sh 32,启动32个iperf3 server进程。​
  1. 在被测试机器上(172.0.0.1)创建脚本client.sh,并添加可执行权限。​
  1. 执行vim client.sh命令,创建client.sh文件。​
  1. 按i,进入编辑模式。​
  1. 在client.sh文件中,输入如下内容。​
  • ​
    #! /bin/bash​
    ​
    dst_ip=$1​
    port_begin=$2​
    cpu_start=$3​
    proc_num=$4​
    ​
    for ((i=0; i<proc_num; i++))​
    do​
    port=$((port_begin + i))​
    cpu=$((cpu_start + i))​
    iperf3 -c $dst_ip -u -l 16 -b 10000M -i 1 -t 180 -p $port -A $(( $cpu % $4)) -P 1 > /dev/null 2>&1 &​
    done​
    ​
  1. 按Esc退出编辑模式,然后输入:wq并回车。​
  1. 执行chmod +x client.sh指令,赋予client.sh文件执行权限。​
  1. 在被测试机器(172.0.0.1)执行以下命令,运行client.sh脚本文件。​
  • ​
    ./client.sh 172.0.0.2 12000 0 128​
    ./client.sh 172.0.0.3 12032 32 128​
    ./client.sh 172.0.0.4 12064 64 128​
    ./client.sh 172.0.0.5 12096 96 128​
    ​
  1. 在四台辅助测试机器分别执行sar -n DEV 1,查看测试结果。​
  • 四台辅助测试机器测试结果的总和即为被测试机器的测试结果: 3790019 + 3183582 + 3500913 + 3564047 约为14Mpps。​
  • ​​​
​
​
最近更新时间:2026.10.19 19:42:29
这个页面对您有帮助吗?
有用
有用
无用
无用