一些iperf3的调优方法iperf3是遵循BSD许可协议的网络TCP、UD

2025-04-18 21:38:28

《一些iperf3的调优方法》iperf3是遵循BSD许可协议的网络TCP、UDP、STCP协议的测试工具,支持IPv4和v6,最初由 NLANR/DAST开发,后来主要由ESnet / Lawrence Berkeley National Laboratory开发。目前看,开发停止在2016年,这个软件的特点小巧玲珑,简单易用,被移植到各种各样的平台,很快成为广为使用的网络带宽测试工具。

最近遇到一个问题,iperf3在测试带宽的时候,在带宽很高的时候,CPU占用率非常高,导致带宽上不去。于是花时间调研了一下,看了手册、文档、源代码,然后自己搭建环境测试了一下,发现iperf3的调优还是挺方便的。

环境如下:

本机 + VMware Fedora 31(1C2G)

iperf3.1.3

命令如下:

服务器:

iperf3 –s

客户端:

iperf –c server_ip –p 5201 –Z –u

iperf –c server_ip –p 5201 –Z –u –b 300M

测试结果:

图文全版:网页链接

结论如下:

1、如果使用-Z参数,网络带宽可以达到4倍,但是CPU利用率仅为大约50%-75%

2、如果使用-b XM参数,则在网络实际带宽大于X时,则X越大,消耗的CPU越多,这是iperf的实现造成的。但是如果实际网络带宽小于X时,则和不加参数一样,CPU消耗不大

3、CPU的消耗不仅仅是iperf,而且还有系统,使用-b参数会大幅度提升系统的CPU消耗,最大可能会提升一个数量级

4、UDP:使用-u参数,可以用UDP协议测试带宽,性能更容易达标。但是又丢包问题

5、TCP:不使用-u参数,但是配置窗口大小是个技术活,而这个问题恰恰是iperf的初衷,网页链接 这个文档的 Tuning a TCP connection章节有一个计算窗口大小的公式

建议如下:

1、使用-Z参数来减少CPU消耗,同时提升默认带宽测试能力

2、如果仅仅测试极限带宽,不要用-b参数

顺便提到的是下载Fedora(网页链接)的时候,我发现Fedora也不是当年吴下阿蒙了,Fedora有桌面版本、服务器版本、COREOS、SILVERBLUE、IOT5个系列,支持x64和aarch64两个平台,而且已经和AWS、GCP、OpenStack、BareMetal都有合作,这个还是真的很重要,通过兼容性实现了生态和价值。

图文全版:网页链接

Fedora的生态系统

图文全版:网页链接

相关信息:

网页链接

网页链接

网页链接

网页链接

网页链接

网页链接