使用 iperf 工具测试 Linux 网络性能

网友投稿 1574 2022-10-12

使用 iperf 工具测试 Linux 网络性能

使用 iperf 工具测试 Linux 网络性能

在 Linux 网络设备开发过程中,我们常常需要测试网络性能指标参数,找出网络性能瓶颈,从而优化我们的软件或者硬件设计。在 Linux 环境中,我们可以使用 iperf 命令工具测试网络性能,包括网络带宽、延迟抖动和数据包丢失等参数。为了方便使用,我们还可以安装图形化界面工具 Jperf 进行测试。本文将以 Ubuntu 系统为例,介绍 iperf 和 Jperf 的使用,并完成网络性能测试。

安装工具

首先需要安装 iperf 命令工具,在 Ubuntu 系统中执行下列命令即可安装。

sudo apt install

Jperf 是 iPerf 命令行图形化的 Java 程序,由于 Jperf 依赖 Java(1.5 及以上版本),因此在安装 Jperf 之前,我们还需要确保 Ubuntu 系统已经安装好了 Java 环境。你可以通过以下命令来检查是否满足要求:

$ java -versionopenjdk version "11.0.13" 2021-10-19OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

如果满足 Java 环境的要求,接下来我们就可以在 ​​xjperf Google CodePage​​ -当前最新的 jperf-2.0.2.zip 安装包。

打开 Shell 终端,切换到 jperf-2.0.2.zip 文件所在目录,依次执行下列命令完成解压缩等安装操作。

unzip jperf-2.0.2.zipcd jperf-2.0.2/chmod

执行脚本即可启动 Jperf 程序。

./jperf.sh

命令行测试

下面我们先利用命令行工具进行测试。iperf 支持测试 TCP 和 UDP 模式,不过为了测出极限带宽、时延抖动、丢包率等数据,我们通常采用 UDP 模式。

在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为 100Mbps,先用 ​​-b 100M​​ 参数进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。

PC 端作为 UDP 服务器端(IP 地址为 192.168.0.1):

iperf -u -s

设备端作为 UDP 客户端:

iperf -u -c 192.168.0.1 -b 1000M -t 60

其中 ​​-u​​​ 表示 UDP 模式,​​-s​​​ 表示服务器端,​​-c​​​ 表示客户端。另外客户端这边,​​-b​​​ 指定发送速率,这里先用 1000Mbps 作为数据发送速率;​​-t​​ 指定测试时长(单位为秒),这里的测试时间为 60 秒。

一分钟后,服务端的打印结果如下:

rudy@Latitude-3420:~$ iperf -u -s------------------------------------------------------------Server listening on UDP port 5001Receiving 1470 byte datagramsUDP buffer size: 208 KByte (default)------------------------------------------------------------[ 3] local 192.168.0.1 port 5001 connected with 192.168.0.2 port 39515[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams[ 3] 0.0-60.0 sec 5.92 GBytes 848 Mbits/sec 0.001 ms 336/4324695 (0.0078%)

客户端的打印结果如下:

root@bionic-arm64:~# iperf -u -c 192.168.0.1 -b 1000M -t 60 ------------------------------------------------------------Client connecting to 192.168.0.1, UDP port 5001Sending 1470 byte datagrams, IPG target: 11.22 us (kalman adjust)UDP buffer size: 208 KByte (default)------------------------------------------------------------[ 3] local 192.168.0.2 port 39515 connected with 192.168.0.1 port 5001[ ID] Interval Transfer Bandwidth[ 3] 0.0-60.0 sec 5.92 GBytes 848 Mbits/sec[ 3] Sent 4324695 datagrams[ 3] Server Report:[ 3] 0.0-60.0 sec 5.92 GBytes 848 Mbits/sec 0.000 ms 336/4324695 (0.0078%)

图形工具测试

PC 端作为服务器端,启动 Jperf 图形工具:

./jperf.sh

设备端作为 TCP 客户端:

iperf -c 192.168.0.1 -b 1000M -t 60

运行过程中,可以在 Jperf 界面看到网络带宽的测试结果,如下图所示。

总结

iperf 是一个功能强大的网络性能测试工具,可用于测试 TCP 和 UDP 带宽质量,报告带宽、延迟抖动和数据包丢失等数据。我们常常利用 iperf 工具来来测试一些网络设备的性能,PC 端和嵌入式设备端均可作为服务器端或者客户端,分别测试上行或者下行的带宽。

iperf 命令的详细用法,请参考 ​​iperf 命令​​。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用于创建PyTorch执行图的可视化的小程序包(pytorch可视化特征图)
下一篇:微信小程序自定义底部导航栏(原生语法)(小程序头部导航栏自定义)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~