2026年最新阿里云服务器网络性能测试方法:网络PPS、带宽和时延测试(图文测试结果),网络PPS(每秒传输数据包数)、网络带宽(数据传输速度)和网络时延(数据从发送端发出到接收端接收到所需的时间)是衡量云服务器网络性能的重要指标,测试网络性能可以帮助您评估网络的稳定性、延迟和吞吐量,从而为您提供更好的用户体验和应用程序性能。本文为您介绍如何使用Netperf、sockperf等工具测试ECS实例的网络PPS、网络带宽和网络时延,您可以根据测试结果评估ECS实例的网络性能。
一、准备测试环境
环境要求
- 准备测试网络PPS、带宽和时延等不同测试场景的ECS实例。创建ECS云服务器:https://www.aliyun.com/product/ecs 在同一测试场景下,所有ECS实例必须属于同一个VPC、同一台交换机和同一个安全组。
本文测试网络性能使用的测试机(ECS实例)和辅助测试机(ECS实例)的实例规格及数量如下所示。在实际测试过程中,请您根据实际环境选择两台机器进行测试。测试ECS实例的网络PPS(仅适用于Linux)
网络PPS小于600万的云服务器ECS配置如下:
测试示例 |
测试机 |
辅助测试机 |
实例规格 |
ecs.g7.large |
ecs.g7.large |
镜像 |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 3 |
实例数量 |
1台 |
1台 |
网络 |
分配公网IP地址 |
|
测试ECS实例的网络带宽和网络时延,Linux实例:
测试示例 |
测试机 |
辅助测试机 |
实例规格 |
ecs.g7.large |
ecs.g7.large |
镜像 |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 3 |
实例数量 |
1台 |
1台 |
网络 |
分配公网IP地址 |
|
不同云服务器ECS实例规格族的性能参数,请参考官方文档:https://help.aliyun.com/zh/ecs/user-guide/overview-of-instance-families 如下图:
测试网络性能
1、测试网络PPS(仅适用于Linux)
说明网络PPS小于600万如下:
- 分别远程连接测试机和辅助测试机。
具体操作,请参见使用Workbench登录Linux实例。 - 分别在测试机和辅助测试机上执行以下命令,下载Netperf。
wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
- 分别在测试机和辅助测试机上执行以下命令,安装Netperf和sar监控工具。
- 执行以下命令,解压Netperf包。
sudo yum install -y gcc autoconf automake libtool sysstat tar -zxvf netperf-2.7.0.tar.gz
- 执行以下命令,查询
gcc版本号。
gcc -v 2>&1
- 若测试机和辅助测试机安装的
gcc版本高于10版本,则您需要继续执行下述操作,以确保gcc可以正常编译。否则,请忽略此步骤。
- 执行以下命令,修改
nettest_omni.c文件。
cd netperf vim src/nettest_omni.c
- 按i键进入编辑模式,手动删除
nettest_omni.c文件中的声明变量内容。
声明变量内容如下所示:
/* different options for the sockets */ int loc_nodelay, /* don't/do use NODELAY locally */ rem_nodelay, /* don't/do use NODELAY remotely */ loc_sndavoid, /* avoid send copies locally */ loc_rcvavoid, /* avoid recv copies locally */ rem_sndavoid, /* avoid send copies remotely */ rem_rcvavoid; /* avoid recv_copies remotely */
- 修改完成后按Esc键,输入
:wq后按下回车键,保存并退出。
- 执行以下命令,安装Netperf和sar监控工具。
cd netperf sudo ./configure sudo make && sudo make install
- 在测试机上执行以下命令,启动64个netserver服务。
#!/bin/bash for j in `seq 64`; do netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1 & done
- 在测试机上执行以下命令,查询测试机的私网IP地址。
ifconfig || ip addr
- 在辅助测试机上执行以下命令,向测试机输入流量。
#!/bin/bash server_ip=<测试机私网IP地址> for j in `seq 64`; do port=$[16000+j] netperf -H ${server_ip} -l ${run_time:-300} -t UDP_STREAM -p $port -- -m 1 -D > /dev/null 2>&1 & done
<测试机私网IP地址>需替换为上一步查询的实际测试机的私网IP地址,示例如下图所示。
- 在测试机上执行以下命令,测试网络PPS。
sar -n DEV 1
在测试结果中查看rxpck/s列的数据值,rxpck/s表示该测试机每秒钟接收的数据包总数。如下图所示,示例中测试机每秒钟接收到的数据包平均数约为94万。
2、测试网络带宽(Linux实例)
- 分别远程连接测试机和辅助测试机。
具体操作,请参见使用Workbench登录Linux实例。 - 分别在测试机和辅助测试机上执行以下命令,下载Netperf。
wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
- 分别在测试机和辅助测试机上执行以下命令,安装Netperf和sar监控工具。
- 执行以下命令,解压Netperf包。
sudo yum install -y gcc autoconf automake libtool sysstat tar -zxvf netperf-2.7.0.tar.gz
- 执行以下命令,查询
gcc版本号。
gcc -v 2>&1
- 若测试机和辅助测试机安装的
gcc版本高于10版本,则您需要继续执行下述操作,以确保gcc可以正常编译。否则,请忽略此步骤。
- 执行以下命令,修改
nettest_omni.c文件。
cd netperf vim src/nettest_omni.c
- 按i键进入编辑模式,手动删除
nettest_omni.c文件中的声明变量内容。
声明变量内容如下所示:
/* different options for the sockets */ int loc_nodelay, /* don't/do use NODELAY locally */ rem_nodelay, /* don't/do use NODELAY remotely */ loc_sndavoid, /* avoid send copies locally */ loc_rcvavoid, /* avoid recv copies locally */ rem_sndavoid, /* avoid send copies remotely */ rem_rcvavoid; /* avoid recv_copies remotely */
- 修改完成后按Esc键,输入
:wq后按下回车键,保存并退出。
- 执行以下命令,安装Netperf和sar监控工具。
cd netperf sudo ./configure sudo make && sudo make install
- 在测试机上执行以下命令,启动64个netserver服务。
#!/bin/bash for j in `seq 64`; do netserver -p $[16000+j] > server_$[16000+j].netperf 2>&1 & done
- 在测试机上执行以下命令,查询测试机的私网IP地址。
ifconfig || ip addr
- 在辅助测试机上执行以下命令,向测试机输入流量。
#!/bin/bash server_ip=<测试机私网IP地址> for j in `seq 64`; do port=$[16000+j] netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 & done
<测试机私网IP地址>需替换为上一步查询的实际测试机的私网IP地址,示例如下图所示。
- 在测试机上执行以下命令,测试网络带宽。
sar -n DEV 1
在测试结果中查看rxkB/s列的数据值,rxkB/s表示该测试机每秒钟接收的数据包的大小,单位为KB/s(千字节/每秒)。1字节等于8比特,若要计算对应的带宽值,则可将rxkB/s列对应的数值乘以8,从而将其转换为Kbps(千比特/每秒)。
示例如下图所示。
3、测试网络时延(Linux实例)
- 分别远程连接测试机和辅助测试机。
- 分别在测试机和辅助测试机上执行以下命令,安装
sockperf。
sudo yum install -y autoconf automake libtool gcc-c++ cd /opt sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz sudo tar -zxf 3.8.tar.gz cd sockperf-3.8/ sudo ./autogen.sh sudo ./configure sudo make -j `cat /proc/cpuinfo| grep process | wc -l` sudo make install
- 在测试机上执行以下命令,查询测试机的私网IP地址。
ifconfig || ip addr
4.在测试机上执行以下命令,启动服务。
sockperf sr --tcp --daemonize
- 在辅助测试机上执行以下命令,向测试机输入流量。
sockperf pp -i <测试机私网IP地址> --tcp -t 30 -m 14 --full-log=result.json
<测试机私网IP地址>需替换为上一步查询的实际测试机的私网IP地址。
在测试机中查看测试的网络时延。测试示例如下图所示:
- 以
avg-latency开头的结果数据表示平均时延,单位为us。 - 以
percentile 99.000开头的结果数据表示99分位时延,单位为μs。