Qperf 网络性能测试工具简介 Qperf 是一款轻量级网络性能测试工具,拥护测量带宽和延迟,兼容TCP/UDP和RDMA协议。器具分为服务端(被动监听)和客户端(主动测试)两种模式,提供丰富的测试程序如rc_bw(RDMA带宽)、tcp_lat(TCP延迟)等。安装简单(yum install qperf),使用时先启动服务端,客户端通过命令如"qperf 10.2
Qperf 使用指南
——基于 RDMA 与 TCP/IP 的高性能网络基准测试工具
1. 工具简介
Qperf 是一款轻量级、跨平台的网络性能基准测试工具,可用于测量两台主机之间的带宽(Bandwidth)与延迟(Latency)。
- 传输方式:既支持传统的 TCP/UDP over IP,也支持 RDMA(Remote Direct Memory Access)。
- 典型场景:数据中心网络选型、HPC 互联调优、云网络 SLA 验证等。
- 运行模式:
- Server 模式:在目标节点上以无参数方式启动,仅作为被动监听端。
- Client 模式:在源节点上指定 Server 地址及测试项,发起连接并输出指标。
2. 测试矩阵
RDMA 操作 | 带宽测试程序 | 延迟测试程序 |
---|---|---|
RDMA Send | rc_bw | rc_lat |
RDMA Read | rc_rdma_read_bw | rc_rdma_read_lat |
RDMA Write | rc_rdma_write_bw | rc_rdma_write_lat |
Socket 操作 | 带宽测试程序 | 延迟测试程序 |
---|---|---|
TCP | tcp_bw | tcp_lat |
UDP | udp_bw | udp_lat |
3. 安装指南
3.1 CentOS / RHEL
[root@server ~]# yum -y install qperf
4. 快速开始
4.1 服务端(假设 IP 为 10.230.1.11)
[root@server ~]# qperf
默认监听 19765 端口,无需额外参数。
4.2 客户端
4.2.1 RDMA Send/Receive
# 延迟测试,消息大小从 1 B 按 2 倍步进至 64 KiB
qperf -cm1 -oo msg_size:1:64K:*2 10.230.1.11 rc_lat
# 带宽测试,同样消息大小范围
qperf -cm1 -oo msg_size:1:64K:*2 10.230.1.11 rc_bw
4.2.2 RDMA Write/Read
qperf -cm1 -oo msg_size:1:64K:*2 10.230.1.11 rc_rdma_write_lat
qperf -cm1 -oo msg_size:1:64K:*2 10.230.1.11 rc_rdma_write_bw
-cm1
表示使用 RDMA Connection Manager,可简化建链流程。
5. 更多示例
5.1 TCP 带宽与延迟
qperf 10.230.1.11 tcp_bw tcp_lat
5.2 UDP 延迟并优雅关闭服务端
qperf 10.230.1.11 udp_lat quit
5.3 获取 TCP 延迟随消息大小的变化
qperf 10.230.1.11 -oo msg_size:1:64K:*2 -vu tcp_lat
6. 常用选项速查表
选项 | 长选项 | 说明 |
---|---|---|
-ar | --access_recv | 是否访问接收到的数据 |
-ca | --cpu_affinity | 设置 CPU 亲和性 |
-f | --flip | 交换发送端和接收端 |
-h | --help | 获取帮助 |
-i | --id | 设置 RDMA 设备及端口 |
-lp | --listen_port | 设置服务端监听端口 |
-m | --msg_size | 设置消息大小 |
-mt | --mtu_size | 设置 MTU 大小(仅 RDMA) |
-cp | --cq_poll | 设置轮询模式 |
-ip | --ip_port | 设置 TCP 端口 |
-t | --time | 设置测试时长 |
-to | --timeout | 设置超时时间 |
-uu | --unify_units | 统一单位 |
-ub | --use_bits_per_sec | 使用 bits/sec 而非 bytes/sec |
-cm1 | --use_cm | 使用 RDMA Connection Manager |
-v | --verbose | 输出详细信息 |
-vv | --verbose_more | 输出更详细信息 |
-V | --version | 输出版本信息 |
完整列表请执行
qperf --help opts
。
7. 小结
借助 Qperf,可以:
- 快速对比不同网络栈(TCP/UDP vs. RDMA)的极限性能;
- 通过调节消息大小、并发数、MTU 等参数,定位瓶颈;
- 以标准化方式向供应商或业务方交付量化报告。