网络性能测试工具qperf简介、安装、使用

您所在的位置:网站首页 延迟测试工具下载 网络性能测试工具qperf简介、安装、使用

网络性能测试工具qperf简介、安装、使用

2024-07-13 23:09| 来源: 网络整理| 查看: 265

一、qperf简介 概念:

Qperf是一种网络性能测试工具,它可以用于测试TCP和UDP网络吞吐量、延迟等性能指标,可以测试网络中的服务器或客户端性能,支持多种协议和多种数据传输方式。它可以通过命令行或脚本方式使用。

功能:

1.支持TCP、UDP、RDMA协议的测试。

2.支持多种数据传输方式的测试,如点对点、多点对点、一对多等。

3.支持测试吞吐量,延迟等性能指标。

4.支持同时测试多个客户端或服务器。

优点:

1.支持多种协议和多种数据传输方式。

2.可以通过命令行或脚本方式使用。

3.可以同时测试多个客户端或服务器。

4.测试结果准确可靠。

缺点:

1.安装和配置相对复杂。

2.测试结果需要分析和解释。

3.对于初学者来说,可能需要一定的学习成本。

应用场景:

1.测试网络带宽和延迟等性能指标。

2.测试服务器或客户端性能。

3.对于网络工程师和管理员来说,可以使用qperf对网络性能进行调优。

4.对于网络设备厂商来说,可以使用qperf来测试产品性能,进行性能优化。

二、qperf安装、使用

以CentOS为例,以下是使用yum进行qperf安装和使用的步骤:

        1. 安装qperf:

sudo yum install qperf

        2. 建立两个测试节点,一个是客户端,一个是服务器端。

例如,通过在两台机器上分别运行以下命令进行设置:

在服务器端运行:

sudo qperf

在客户端运行:

sudo qperf [服务器地址]

其中,[服务器地址]是服务器端的IP地址或主机名。

        3. 执行测试

在客户端运行qperf命令之后,系统会自动开始测试。

测试结束后,qperf将会输出客户端与服务器端之间TCP和UDP的吞吐量、延迟等性能指标。

例如:

tcp_bw: bandwidth = 9.91 GByte/sec udp_bw: bandwidth = 1.05 GByte/sec tcp_lat: latency = 4.95 usec udp_lat: latency = 12.4 usec

在这个例子中,qperf测试结果表明TCP的带宽是9.91 GB/s,UDP的带宽是1.05 GB/s,TCP的延迟是4.95微秒,UDP的延迟是12.4微秒。

需要注意的是,在进行此类测试时,请确保网络连接和测试环境没有其他应用程序或进程正在运行,以避免测试结果受到其它因素影响。

[root@localhost home]# qperf 192.168.6.211 -t 10 -vvu tcp_lat udp_lat conf tcp_lat: latency = 4.77 us msg_size = 1 bytes time = 10 sec timeout = 5 sec udp_lat: latency = 4.07 us msg_size = 1 bytes time = 10 sec timeout = 5 sec conf: loc_node = localhost.localdomain loc_cpu = 11th Gen Intel Core i5-1135G7 @ 2.40GHz loc_os = Linux 3.10.0-1160.71.1.el7.x86_64 loc_qperf = 0.4.9 rem_node = localhost.localdomain rem_cpu = 11th Gen Intel Core i5-1135G7 @ 2.40GHz rem_os = Linux 3.10.0-1160.71.1.el7.x86_64 rem_qperf = 0.4.9 [root@localhost home]# [root@localhost home]# qperf 192.168.6.211 must specify a test type; try: qperf --help [root@localhost home]# [root@localhost home]# qperf 192.168.6.211 -t 10 must specify a test type; try: qperf --help [root@localhost home]# qperf 192.168.6.211 tcp_lat tcp_lat: latency = 4.74 us [root@localhost home]# [root@localhost home]# qperf 192.168.6.211 tcp_lat udp_lat tcp_bw udp_bw tcp_lat: latency = 4.77 us udp_lat: latency = 4.04 us tcp_bw: bw = 7.98 GB/sec udp_bw: send_bw = 17.1 GB/sec recv_bw = 11.2 MB/sec [root@localhost home]# [root@localhost home]# qperf 192.168.6.211 tcp_lat udp_lat tcp_bw udp_bw conf tcp_lat: latency = 4.84 us udp_lat: latency = 4.06 us tcp_bw: bw = 8.06 GB/sec udp_bw: send_bw = 17.7 GB/sec recv_bw = 11.1 MB/sec conf: loc_node = localhost.localdomain loc_cpu = 11th Gen Intel Core i5-1135G7 @ 2.40GHz loc_os = Linux 3.10.0-1160.71.1.el7.x86_64 loc_qperf = 0.4.9 rem_node = localhost.localdomain rem_cpu = 11th Gen Intel Core i5-1135G7 @ 2.40GHz rem_os = Linux 3.10.0-1160.71.1.el7.x86_64 rem_qperf = 0.4.9 [root@localhost home]# qperf输出结果及解释: [root@localhost ~]# qperf 192.168.2.140 -lca 5 -rca 5 -t 10 -vvu tcp_lat udp_lat tcp_bw udp_bw conf tcp_lat: latency = 1.61 us affinity = 5 msg_size = 1 bytes time = 10 sec timeout = 5 sec udp_lat: latency = 1.42 us affinity = 5 msg_size = 1 bytes time = 10 sec timeout = 5 sec tcp_bw: bw = 13.3 GB/sec affinity = 5 msg_size = 64 KiB (65,536) time = 10 sec timeout = 5 sec udp_bw: send_bw = 10.6 GB/sec recv_bw = 10.6 GB/sec affinity = 5 msg_size = 32 KiB (32,768) time = 10 sec timeout = 5 sec conf: loc_node = localhost.localdomain loc_cpu = 12 Cores: Mixed CPUs loc_os = Linux 3.10.0-1160.el7.x86_64 loc_qperf = 0.4.9 rem_node = localhost.localdomain rem_cpu = 12 Cores: Mixed CPUs rem_os = Linux 3.10.0-1160.el7.x86_64 rem_qperf = 0.4.9

#qperf 192.168.2.140 -lca 5 -rca 5 -t 10 -vvu tcp_lat udp_lat tcp_bw udp_bw conf

qperf是QLogic(千兆逻辑公司)开发的网络性能测试工具。192.168.2.140是远程测试节点的IP地址。-lca 5和-rca 5分别表示本地和远程CPU亲和性,将测试程序绑定到第5个CPU核心上。-t 10表示测试时间为10秒。-vvu表示开启详细输出,包括每个测试项的详细性能数据。tcp_lat和udp_lat分别表示TCP和UDP的单向延迟测试。tcp_bw和udp_bw分别表示TCP和UDP的双向吞吐量测试。conf表示输出测试节点的配置信息。

输出结果显示了针对远程节点的四个不同性能测试的结果,以及测试节点的配置信息:

tcp_lat:TCP的单向延迟测试结果,latency为1.61us,msg_size为1字节,表示测试发送和接收1字节的数据所需的平均时间。udp_lat:UDP的单向延迟测试结果,latency为1.42us,msg_size为1字节,表示测试发送和接收1字节的数据所需的平均时间。tcp_bw:TCP的双向吞吐量测试结果,bw为13.3GB/sec,msg_size为64KB,表示测试在10秒内双向传输64KB数据时的平均带宽。udp_bw:UDP的双向吞吐量测试结果,send_bw和recv_bw均为10.6GB/sec,msg_size为32KB,表示测试在10秒内发送和接收32KB数据时的平均带宽。conf:测试节点的一些配置信息,包括本地节点和远程节点的名称、CPU类型、操作系统、qperf版本等。

 三、qperf常用参数说明

以下是qperf常用参数说明:

-t 测试时间,单位为秒,默认值为10秒。-l 数据长度,单位为字节,默认值为64字节。-p 测试端口,默认值为端口号为19765。-i 测试的间隔时间,默认值为1s。-u 使用UDP协议进行测试。-v 输出详细的测试结果。可以多次使用增加详细度。-s 指定服务器地址。-ca 指定客户端的CPU亲和性(即将进程绑定到某个CPU核心上)。-rca 指定远程服务器的CPU亲和性。-lca 指定本地服务器的CPU亲和性。-fb 指定反向测试的数据流。-u 指定使用UDP协议进行测试。-ua 指定UDP测试的数据包大小,默认为1470字节。

这些参数可以通过在命令行中添加对应的参数来使用。例如,以下命令将使用UDP协议进行1秒钟的测试,并输出详细的测试结果:

qperf 192.168.1.100 -u -t 1 -v

注意,在使用qperf之前请确保安装了qperf工具,并且正确设置了网络环境和防火墙规则,以避免测试过程中出现不必要的问题。

四、报错及说明

报错:

[root@localhost home]# qperf 192.168.6.211 must specify a test type; try: qperf --help

这个错误提示表明你需要在命令行中指定测试类型。可以通过以下方式指定:

测试TCP带宽:qperf 192.168.6.211 tcp_bw测试UDP带宽:qperf 192.168.6.211 udp_bw测试TCP延迟:qperf 192.168.6.211 tcp_lat测试UDP延迟:qperf 192.168.6.211 udp_lat

在指定了测试类型后,qperf将会在客户端和服务器之间执行相应的测试,并输出测试结果。

报错:

[root@localhost ~]# qperf 192.168.2.140 -lca 5 -rca 5 -t 10 -vvu tcp_lat udp_lat conf tcp_lat: 192.168.2.140: failed to connect

这个错误提示表明qperf客户端无法连接到服务器端进行测试。请检查以下可能的问题:

请确认服务器地址192.168.2.140是否正确,并且可以从当前的客户端访问到;请确认服务器端是否已经启动了qperf,可以通过在服务器端执行命令qperf来检查;请确保网络连接正确,例如防火墙设置或者路由器配置等。

关闭防火墙:

[root@localhost ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)    Active: active (running) since Thu 2023-07-13 22:52:49 EDT; 1 weeks 0 days ago      Docs: man:firewalld(1)  Main PID: 943 (firewalld)     Tasks: 2    CGroup: /system.slice/firewalld.service            └─943 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Jul 13 22:52:49 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... Jul 13 22:52:49 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. Jul 13 22:52:49 localhost.localdomain firewalld[943]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure confi...t now. Hint: Some lines were ellipsized, use -l to show in full. [root@localhost ~]# systemctl stop firewalld

如果以上问题都没有解决报错问题,可以尝试更换其他客户端机器进行测试,或者在服务器端执行命令netstat -an | grep LISTEN检查是否监听了相关端口。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3