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 sever.sh指令,赋予server.sh文件执行权限。
  1. 在被测试机器(172.0.0.1)上运行./ sever.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.2172.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。
最近更新时间:2025.10.09 14:54:31
这个页面对您有帮助吗?
有用
有用
无用
无用