固定链接 基于滴滴云之 Netperf 网络性能测试工具的搭建及使用

基于滴滴云之 Netperf 网络性能测试工具的搭建及使用

基于滴滴云之 Netperf 网络性能测试工具的搭建及使用

1. 介绍 Netperf

网络性能是云服务器的重要指标,对网络性能进行准确的测试非常重要。Netperf 是一种可以用来衡量不同类型网络性能的工具,它可以用来测试 PPS(即每秒钟发送数据包的数目)、单向吞吐量和端到端延迟。本文给大家简述如何采用 Netperf 对网络性能进行测试。

2. 安装 Netperf

2.1 环境准备

  • 测试机
    • 被压力测试网络 PPS 的 DC2 实例,可以用来作为 Netperf 测试中的 Client 端或者 Server 端
    • 虚拟机名称:test_netperf1; 虚拟机 IP:116.85.255.6。(虚拟机可以在 滴滴云上申请)
  • 陪练机
    • DC2 实例,可以用来作为 Netperf 测试中的 Client 端或者 Server 端,与测试机建立控制连接,传递测试配置相关的信息以及测试结果
    • 虚拟机名称:test_netperf2; 虚拟机 IP:116.85.255.5

2.2 安装 Netperf

  • 运行下面命令下载 Netperf

  • 解压 Netperf

  • 进入 Netperf目录

  • 执行以下命令配置文件,编译并且安装

  • 运行以下命令验证 Netperf 是否安装成功。如果安装成功会生成2个工具:NetServer 和 Netperf。

2.3 开启多队列功能

在测试机内开启多队列功能(假设需要开启的网卡是 eth0),用来提高测试机接收数据包的性能。

  • 执行以下命令开启多队列,开启 3 个队列

  • 执行以下命令修改每个队列的参数

3. 使用 Netperf 和 NetServer 测试网络性能

3.1 测试收方向

  • 测试机
    • 测试机内启动 NetServer 进程,-p 参数用来指定接收数据包的端口号

  • 陪练机
    • 陪练机内启动 Netperf 进程,分别制定到测试机不同的 NetServer 端口
    • netperf -H 参数指定测试机的 IP 地址
    • netperf -p 参数指定测试机的端口号
    • netperf -l 参数指定陪练机向测试发送数据包的时间
    • netperf -t 参数指定发送数据包的协议类型为 TCP_STREAM 还是 UDP_STREAM
    • netperf -m 参数指定数据包的字节大小

3.2 测试发方向

  • 陪练机
    • 在所有陪练机内各启动一个 NetServer 进程,-p 指定端口号

  • 测试机
    • 测试机内启动 Netperf 进程,-H 指定为陪练机的 IP 地址
    • 有多少个陪练机,需要在测试机内启动多少个 Netperf 进程

3.3 测试结果分析

  • 最终发送端的每个 Netperf 进程输出如下结果,以下结果不能代表以上申请测试机的性能,具体性能根据实际测试结果而定

输出结果各个字段的含义如下:

字段名 含义 备注
Socket size(bytes) 缓冲区的大小
Message size(bytes) 数据包的大小
Elapsed Time(secs) 测试时间
Messages Okay(个) 发送成功的数据包数目
Messages Errors(个) 发送失败的数据包数目
Throughtput(10^6bits/sec) 吞吐量
  • PPS
    • PPS 为每秒钟发送成功的数据包个数
    • 具体计算方法:PPS = 数据包发送成功的数目/测试时间
    • 可以在 Server 端用 sar 命令来统计实际收到的数据包,具体命令如下所示,其表示每隔 1 秒统计一次,统计 300 次,sar 命令最后会对 300 次的统计结果求平均

本文作者:严辉

您的留言将激励我们越做越好