qperf 网络性能测试工具使用
介绍
qperf是测试两个节点之间的带宽和延时。需要一个节点充当服务端执行qperf,另一个节点充当客户端执行命令,获取带宽和延时。
安装
- Linux 操作系统: #yum install qperf
- 或者https://pkgs.org/download/qperf 官方网页下载安装。(会安装两个依赖包(libibverbs, librdmacm),是直接和rdma功能相关的,不然无法启动rdma功能。)
使用
服务端:
#qperf
客户端:
qperf SERVERNODE [OPTIONS] TESTS
-
TCP带宽测试:
#qperf 服务端IP tcp_bw (不带端口)
#qperf 服务端IP --listen_port 端口号 tcp_bw (带端口:–listen_port 端口号)
例:
tcp_bw:
bw = 3 MB/sec
msg_size = 1 bytes -
TCP延时测试:
#qperf 服务端IP tcp_lat (不带端口)
#qperf 服务端IP --listen_port 端口号 tcp_lat (带端口:–listen_port 端口号)
例:
tcp_lat:
latency = 107 us
msg_size = 2 bytes -
同时测试tcp带宽和tcp延时:
#qperf 服务端IP tcp_bw tcp_lat
例:
tcp_bw:
bw = 801 MB/sec
msg_size = 64 KiB (65,536)
tcp_lat:
latency = 121 us
msg_size = 1 bytes -
循环loop遍历测试
通过qperf提供的循环loop测试,可以一个命令得到所有数据。循环多次测试,每次改变消息大小,例如从16K增加到64K,每次大小翻倍直到64K。
#qperf 服务端IP -oo msg_size:1:64K:*2 -vu tcp_bw tcp_lat
例:tcp_bw:
bw = 2.81 MB/sec
msg_size = 1 bytes
tcp_bw:
bw = 5.43 MB/sec
msg_size = 2 bytes
tcp_bw:
bw = 9.37 MB/sec
msg_size = 4 bytes
tcp_bw:
bw = 21.2 MB/sec
msg_size = 8 bytes
tcp_bw:
bw = 39.5 MB/sec
msg_size = 16 bytes
tcp_bw:
bw = 72.6 MB/sec
msg_size = 32 bytes
tcp_bw:
bw = 143 MB/sec
msg_size = 64 bytes
tcp_bw:
bw = 244 MB/sec
msg_size = 128 bytes
tcp_bw:
bw = 423 MB/sec
msg_size = 256 bytes
tcp_bw:
bw = 551 MB/sec
msg_size = 512 bytes
tcp_bw:
bw = 807 MB/sec
msg_size = 1 KiB (1,024)
tcp_bw:
bw = 777 MB/sec
msg_size = 2 KiB (2,048)
tcp_bw:
bw = 978 MB/sec
msg_size = 4 KiB (4,096)
tcp_bw:
bw = 970 MB/sec
msg_size = 8 KiB (8,192)
tcp_bw:
bw = 810 MB/sec
msg_size = 16 KiB (16,384)
tcp_bw:
bw = 826 MB/sec
msg_size = 32 KiB (32,768)
tcp_bw:
bw = 790 MB/sec
msg_size = 64 KiB (65,536)
tcp_lat:
latency = 117 us
msg_size = 1 bytes
tcp_lat:
latency = 101 us
msg_size = 2 bytes
tcp_lat:
latency = 109 us
msg_size = 4 bytes
tcp_lat:
latency = 83.2 us
msg_size = 8 bytes
tcp_lat:
latency = 116 us
msg_size = 16 bytes
tcp_lat:
latency = 90.1 us
msg_size = 32 bytes
tcp_lat:
latency = 88.5 us
msg_size = 64 bytes
tcp_lat:
latency = 91.4 us
msg_size = 128 bytes
tcp_lat:
latency = 84.9 us
msg_size = 256 bytes
tcp_lat:
latency = 97.2 us
msg_size = 512 bytes
tcp_lat:
latency = 143 us
msg_size = 1 KiB (1,024)
tcp_lat:
latency = 100 us
msg_size = 2 KiB (2,048)
tcp_lat:
latency = 124 us
msg_size = 4 KiB (4,096)
tcp_lat:
latency = 113 us
msg_size = 8 KiB (8,192)
tcp_lat:
latency = 132 us
msg_size = 16 KiB (16,384)
tcp_lat:
latency = 138 us
msg_size = 32 KiB (32,768)
tcp_lat:
latency = 482 us
msg_size = 64 KiB (65,536) -
指定测试时间
#qperf 服务端IP -t 10 tcp_bw (测试10秒tcp带宽)
例:
tcp_bw:
bw = 3.08 MB/sec
msg_size = 1 bytes
time = 10 sec
常用参数
TESTS:(一条命令可带多个测试项)
tcp_bw : TCP单向流带宽
tcp_lat : TCP单向延迟
udp_bw : UDP流单向带宽
udp_lat : UDP单向时延
conf : 显示两端主机配置
OPTIONS:
–time/-t : 测试持续的时间,默认为 2s
–msg_size/-m : 设置报文的大小,默认测带宽是为 64KB,测延迟是为 1B
–listen_port/-lp :设置与服务端建立连接的端口号,默认为 19765
–verbose/-v :提供更多输出的信息,可以更多尝试一下 -vc、-vs、-vt、-vu 等等
over