腾讯云网络性能测试方案

  • A+
所属分类:服务器类

本文介绍了 CVM 通用网络性能测试指标及网络性能测试方案。以下方案适用于 Windows 及 Linux 系统。

网络性能测试指标

指标 说明
带宽
(Mbits/秒)
表示单位时间内(1s)所能传输的最大数据量(bit)。
TCP-RR
(次/秒)
表示在同一次 TCP 长链接中进行多次 Request/Response 通信时的响应效率。TCP-RR 在数据库访问链接中较为普遍。
TCP-CRR
(次/秒)
表示在一次 TCP 链接中只进行一组 Request/Response 通信即断开,并不断新建 TCP 链接时的响应效率。TCP-CRR 在 Web 服务器访问中较为普遍。
TCP-STREAM
(Mbits/秒)
表示 TCP 进行批量数据传输时的数据传输吞吐量。

工具基本信息

指标 工具
TCP-RR Netperf
TCP-CRR Netperf
TCP-STREAM Netperf
带宽 iPerf
pps 查看 sar
网卡队列查看 ethtool

测试方案

搭建测试环境

注意:
在测试环境搭建和测试时都需要保证自己处于 root 用户权限。

1. 安装编译环境与系统状态侦测工具。

2. 安装 Netperf

2.1 下载 Netperf 压缩包(也可以从 Github 下载最新版本:Netperf )。

2.2 对 Netperf 压缩包进行解压缩

2.3 对 Netperf 进行编译、安装。

图2

带宽测试

推荐使用两台相同配置的 CVM 进行测试,避免性能测试结果出现偏差,其中一台作为服务器,另一台作为客户端。

服务器端测试流程

输入以下命令:

图3

客户端测试流程

按以下格式输入命令:

图4

注意:
-b后应该填理想带宽,但是建议填写一个大于理想带宽不太多的值(在本测试中填写的 2G)。

测试完毕后客户端和服务器都会显示带宽测试结果。

TCP-RR 测试

推荐使用两台或多台相同配置的 CVM 进行测试,避免性能测试结果出现偏差,其中一台作为服务器,其他作为客户端。

服务器端流程

输入以下命令:

图5 TCP-RR测试Server端
如上图所示,在sar -n DEV 2的命令中:

  • rxpck/s 表示每秒收包数目;
  • txpck/s 表示每秒发包数目;
  • rxkB/s 表示每秒接收的数据量(KB);
  • txkB/s 表示每秒发送的数据量(KB)。

注意:
上图示例只启用了一个客户端,并没有到达峰值。若要达到峰值需要启动多个 Netperf 实例。

客户端流程

按以下格式输入命令:

图 6 TCP-RR Client端
如上图所示,填写说明如下:

  • -H后填写服务器的内网 IP 地址;
  • -l后填写测试时间 300s;
  • -t后填写测试方法 TCP_RR;
  • -r后填写 TCP_RR 模式下的 Request 与 Response 的大小(图中往返包为 1 是为了避免在测试极限 pps 时占满网络带宽)。
  • Netperf 完整使用文档请参考 https://hewlettpackard.github.io/netperf/training/Netperf.html

注意:
因为客户端需要启动多个 Netperf 实例,因此建议后台执行。不断启动 Netperf 实例使得服务器 pps 达到峰值,记录服务器 pps 峰值。

TCP-CRR 测试

推荐使用两台或多台相同配置的 CVM 进行测试,避免性能测试结果出现偏差,其中一台作为服务器,其他作为客户端。

服务器端流程

与 TCP-RR 测试一致:

客户端流程

按以下格式输入命令:

图 7 TCP-CRR Client端
如上图所示,成功在后台创建了一个 TCP-CRR 模式下的 Netperf 实例,填写说明如下:

  • -H后填写服务器的内网 IP 地址;
  • -l后填写测试时间 300s;
  • -t后填写测试方法 TCP_CRR;
  • -r后填写 TCP_CRR 模式下的 Request 与 Response 的大小(图中往返包为 1 是为了避免在测试极限 pps 时占满网络带宽)。

注意:
单 Netperf 实例并不能测出服务器的极限性能,因此需要启动多个 Netperf 实例,直到服务器 pps 到达峰值,观察并记录峰值。

多 Netperf 实例启动脚本

在 TCP-RR 与 TCP-CRR 的测试中,需要启动多个 Netperf 实例,具体多少个实例与主机配置相关,本文提供一个启动多 Netperf 的脚本模板,可简化测试流程。脚本内容如下:

Windows 版本 iPerf 与 Netperf 安装帮助

Windows下 iPerf 安装帮助

  1. iPerf 安装包下载页面链接:iPerf 下载页面。本示例下载的是 iPerf 3.1.3 版本。
  2. 下载后解压如图:
    图 9 windows iperf
  3. 通过 PowerShell 或者 CMD 工具使用 iPerf ,命令使用方法与 Linux 下一致。
    图 10 powershell 使用示例

Windows下 Netperf 安装帮助

Netperf 官方只提供了源码而并未提供二进制安装包,从安全角度考虑建议本地编译,如果实在无法编译成功也可以考虑从可信源下载可执行文件。

注意:
全程编译请勿使用中文目录或者目录名中带有空格。

1. 安装 Cygwin 与 WDK(Windows Driver Kits)。

安装包下载地址:

2. 通过 GitHub 下载 Netperf 最新版源码。

GitHub 链接

3. 解压后使用 CMD 或 PowerShell 进入src\NetPerfDir目录。

4. 在NetPerfDir目录中输入命令:

5. 使用 CMD 或 PowerShell 进入src\NetServerDir目录。

6. 在NetServerDir目录中输入命令:

7. 编译完成后,在 CMD 或 PowerShell 中可以采用与 Linux 下相同的方法来使用 Netperf 。

注意:
可能 netserver 会报错 fopen error,只需要在 C 盘根目录下创建文件夹 temp 即可解决问题。
图 11 Netperf windows端

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: