盒子
盒子
文章目录
  1. 安装
  2. 测试

网络性能测试

有时候因为一些需要测试节点直接的网络性能,简单的可以通过PING来检查两点之间的延迟。这样的测试太单一,当我们需要测试两点之间TCP、UDP协议传输性能是可以使用工具qperf

安装

若是在CentOS/RHEL 7系统中,源里面已经包含这个包,直接可使用yum安装:

1
2
3
4
5
# enable the EPEL repo
$ sudo yum install epel-release
# install the package itself
$ sudo yum install qperf

Ubuntu/Debian系统中,直接下载源码包自己编译。这里我使用的是两台Ubuntu 16.04机器,先安装需要的编译工具:

1
2
# get the tools needed to build qperf
$ sudo apt-get install -y make gcc libc-dev

接着下载源码包解压并编译:

1
$ wget https://www.openfabrics.org/downloads/qperf/qperf-0.4.9.tar.gz && tar -xvf qperf-0.4.9.tar.gz

然后进入解压的目录编译:

1
2
3
$ cd qperf-0.4.9
$ ./configure
$ make

这样在当前目录下的src/qperf已经是一个编译过后的二进制可执行文件。

测试

qperf有服务端和客户端之分,现在一个节点启动qperf server,接着在另一个节点启动客户端测试等待返回结果。

这里有两台服务器:

1
2
172.18.115.116
172.18.240.119

在119上启动server:

1
$ ./src/qperf

这样会处于阻塞状态,等待客户端发送数据。现在在116上启动客户端测试:

1
./src/qperf -v 172.18.240.119 tcp_bw tcp_lat conf

其中参数-v指定显示完整的输出,还有其他诸如-vv-vvc等参数用来显示更多的信息。紧接着是server IP。tcp_bw表示单向的一个带宽,tcp_lat表示单向的传输延时,conf表示测试节点配置机器配置及系统等信息。最终得到的测试结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tcp_bw:
bw = 157 MB/sec
msg_rate = 2.39 K/sec
send_cost = 506 ms/GB
recv_cost = 1.59 sec/GB
send_cpus_used = 8 % cpus
recv_cpus_used = 25 % cpus
tcp_lat:
latency = 427 us
msg_rate = 2.34 K/sec
loc_cpus_used = 4 % cpus
rem_cpus_used = 3 % cpus
conf:
loc_node = kuben
loc_cpu = Intel Xeon E5-2680 v3 @ 2.50GHz
loc_os = Linux 4.4.0-82-generic
loc_qperf = 0.4.9
rem_node = kubem
rem_cpu = Intel Xeon E5-2682 v4 @ 2.50GHz
rem_os = Linux 4.4.0-82-generic
rem_qperf = 0.4.9

可以看到tcp_bw中显示了当前116到119的一个单向带宽大小、数据包传输速率和发送与接收数据是所占用的CPU。同样tcp_lat显示了116到119到的单向延时和TCP包每一跳的时间,已经占用的CPU。

这里只是测试TCP的带宽和延时,还可以测试UDP:

1
./src/qperf -v 172.18.240.119 tcp_bw tcp_lat udp_bw udp_lat conf

udp_bwudp_lat输出的信息和TCP一样。更多的用法可以查看文档。

支持一下
扫一扫,支持forsigner