iPerf3网络性能测试全指南

测试准备

服务端(Server):在一台机器上启动服务端,它会监听默认的 5201 端口。

iperf3 -s

如需指定端口,使用 
-p
 参数:
iperf3 -s -p 5202

客户端(Client):在另一台机器上使用以下指令发起测试。


核心指令格式

所有客户端测试指令都遵循这个模式:

iperf3 -c <服务器IP地址> [协议] [包长] [带宽] [持续时间] [并行] [窗口] [反向测试]

一、TCP 协议测试指令

1. TCP 长包测试 (测试带宽)

目的:测试网络最大吞吐量,使用大包减少协议开销。

正向测试 (Client -> Server)

# 基本指令(默认包长~1460字节)
iperf3 -c <服务器IP> -t 30

# 显式指定大包(1460或8192),4并行流,加大窗口
iperf3 -c <服务器IP> -l 1460 -t 30 -P 4 -w 2M

反向测试 (Server -> Client)

只需在正向测试命令后加上 
-R
 参数。

iperf3 -c <服务器IP> -l 1460 -t 30 -P 4 -w 2M -R

2. TCP 短包测试 (测试小包性能)

目的:测试系统处理小数据包的能力,对CPU和中断压力大,更能反映延迟。

正向测试 (Client -> Server)

# 使用64字节小包,单线程
iperf3 -c <服务器IP> -l 64 -t 30

# 使用128字节包,4并行流以减少单线程CPU瓶颈
iperf3 -c <服务器IP> -l 128 -t 30 -P 4

反向测试 (Server -> Client)

iperf3 -c <服务器IP> -l 64 -t 30 -R
iperf3 -c <服务器IP> -l 128 -t 30 -P 4 -R

二、UDP 协议测试指令

重要:UDP测试必须使用 
-u
 参数并用 
-b
 指定发送速率,否则默认仅为1Mbps。

1. UDP 长包测试 (测试大包吞吐量和丢包)

目的:在UDP下测试最大可用带宽和丢包率。

正向测试 (Client -> Server)

# 以800Mbps速率发送1460字节的大包,测试60秒
iperf3 -c <服务器IP> -u -b 800M -l 1460 -t 60

反向测试 (Server -> Client)

iperf3 -c <服务器IP> -u -b 800M -l 1460 -t 60 -R

2. UDP 短包测试 (测试小包转发能力和抖动)

目的:测试网络设备(路由器、交换机)的小包转发性能(PPS),并测量抖动(Jitter)。

正向测试 (Client -> Server)

# 以100Mbps速率发送64字节的小包,测试30秒
iperf3 -c <服务器IP> -u -b 100M -l 64 -t 30

# 更苛刻的测试:以200Mbps速率发送更小的包
iperf3 -c <服务器IP> -u -b 200M -l 32 -t 30

反向测试 (Server -> Client)

iperf3 -c <服务器IP> -u -b 100M -l 64 -t 30 -R
iperf3 -c <服务器IP> -u -b 200M -l 32 -t 30 -R

三、完整测试方案示例

假设服务器IP为 
192.168.1.100
,建议按以下顺序执行一套完整的测试:

TCP 带宽基线测试(长包)

iperf3 -c 192.168.1.100 -l 1460 -t 30 -P 4      # 正向
iperf3 -c 192.168.1.100 -l 1460 -t 30 -P 4 -R   # 反向

TCP 小包性能测试(短包)

iperf3 -c 192.168.1.100 -l 64 -t 30 -P 4        # 正向
iperf3 -c 192.168.1.100 -l 64 -t 30 -P 4 -R     # 反向

UDP 带宽与丢包测试(长包)

iperf3 -c 192.168.1.100 -u -b 900M -l 1460 -t 20      # 正向
iperf3 -c 192.168.1.100 -u -b 900M -l 1460 -t 20 -R   # 反向

UDP 抖动与PPS测试(短包)

iperf3 -c 192.168.1.100 -u -b 50M -l 64 -t 15      # 正向
iperf3 -c 192.168.1.100 -u -b 50M -l 64 -t 15 -R   # 反向

参数解释表

参数 含义 示例

-c <IP>
客户端模式,指定服务器IP
-c 192.168.1.100

-u
使用UDP协议(不加则默认TCP)
-u

-b <速率>
UDP专用,指定发送速率
-b 100M

-b 1G

-l <长度>
设置数据包长度(字节)
-l 64
(短包), 
-l 1460
(长包)

-t <秒>
测试持续时间
-t 30
(30秒)

-P <数字>
并行连接数,用于多线程测试
-P 4
(4个连接)

-w <大小>
设置TCP窗口大小(Socket缓冲区)
-w 2M
(2MB)

-R
反向测试(Server发送,Client接收)
-R

-i <秒>
定期报告的时间间隔
-i 5
(每5秒报告一次)

--logfile <文件>
将输出重定向到文件
--logfile result.txt

-D 后台监听 可以同时配合top来看cpu的占用率

通过组合这些指令,你可以全面评估网络在不同协议、不同数据包大小和不同传输方向上的性能表现。

© 版权声明

相关文章

暂无评论

none
暂无评论...