如何使用 iperf 测量网络性能
Posted on Wed, 25 Dec 2024 14:00:12 +0800 by LiangMingJian
概述
iperf 是一种网络性能测试工具,能对测试协议、测试时间、测试数据等参数进行配置调整,测试主机的最大带宽、延迟抖动、数据包丢失等信息。
需要注意,iperf 是基于服务器/客户端(Server/Client)的工作模式。在测试时,必须使用两台设备,一台设备充当服务器,一台充当客户端。客户端向服务器发送一定数量的数据,然后服务器统计并记录带宽、延时抖动等信息,最终得出结果。
iperf 的安装
访问 iperf 官网下载 ,iperf 提供各大主流操作系统的安装手段,依据提示进行下载安装即可。

# 以 CentOS 为例
yum install iperf3
# 配置软链接(可以用 iperf 调用 iperf3 的命令)
cd /usr/bin
ln -s iperf3 iperf
当然,如果所使用的操作系统不在官方支持的操作系统中时,可以通过下载源代码然后进行编译安装。
# 以交叉编译安装 arm 系统的程序为例
tar -zxvf iperf-3.1.3.tar.gz # 下载源代码文件夹,解压
cd iperf-3.1.3/ # 进入解压目录
mkdir arm-version # 创建安装目录
# 编译配置,--host 设置使用的编译器(如果不是交叉编译,则这个可以省略);--prefix 安装目录; CFLAGS 静态编译
./configure --host=arm-linux-gnueabihf --prefix=/home/iperf-3.1.3/arm-version/ CFLAGS=-static
# 开始执行编译
make clean # 清除掉之前编译的文件,确保不影响
make && make install # 编译并安装
基于 iPerf 测试网络的示例(TCP 模式)
步骤 1:准备两台主机,在主机 1 上执行 iperf -s,以主机 1 为服务器端进行网络测试。
>>> iperf -s
---------------------------------
Server listening on 5201
-----------------------------------
# 说明:服务器端默认端口为 5201
步骤 2:在主机 2 上执行 iperf -c 主机,以主机 2 作为客户端去连接主机 1,测试主机 1 与主机 2 之间的网络吞吐量(默认使用 TCP 协议)。
iperf -c 192.168.1.243
----------------------------------------------
[ID] Interval Transfer Bandwidth
[4] 0.00-30.00 sec 341 MBytes 95.4 MBytes/sec
# 结果表明主机 1 与主机 2 之间的带宽是 95.4 Mbit/s,即 95.4 MB/s
附录:可以填写如下的参数使用更多的功能。
iperf -c 主机 -t 32 -i 8
# -t 32 表示测试时间为 32s,-i 8 表示每 8s 输出一次测试结果
iperf -c 主机 -n 2000M -i 5
# -n 2000M 表示传输的数据量为2000MB
基于 iPerf 测试网络的示例(UDP 模式)
UDP 测试时,作为服务器的主机 1 的操作没有变化。在主机 2 上执行命令 iperf -c 主机 -u,通过 -u 参数指定使用 UDP 协议,测试主机 1 与主机 2 之间的网络性能。
iperf -c 192.168.1.243
----------------------------------------------
[ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[4] 0.00-30.00 sec 341 MBytes 95.4 MBytes/sec 0.421 ms 70050/77741 (90%)
# 结果表明主机 1 与主机 2 之间的带宽是 95.4 Mbit/s
附录:网络性能的指标
- 网络吞吐量:单位时间内通过某个网络(信道或接口)的数据量,吞吐量受网络的带宽或者网络的额定速率限制。
- 网络延时:一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间。影响网络延时的主要因素是路由的跳数和网络的流量。
- 抖动:用于描述包在网络中的传输延时的变化,抖动越小,说明网络质量越稳定越好。
- 丢包率:一个数据包从用户的计算机发送到网站服务器中,所丢失的数据包数量占所发送的数据包的比率。
- 带宽:用来描述网络连接中的最大数据传输速率,即我们常说的千兆带宽(1000 Mbps / 1 Gbps / 125 Mb/s)。