Linux带宽限速和服务器之间带宽测试

iperf3 命令简介

iperf3 是一个用于测量网络带宽性能的工具。它包括客户端和服务端部分,通过在两者之间传输数据来评估网络性能,以下文档在客户端机器出口带宽限速

测试机器

  • 服务端:11.11.11.11

  • 客户端:22.22.22.22

测试机器环境说明:

(1)服务端和客户端机器外网全互通
(2)当前客户端已经使用tc限制外网bond0出口带宽最高为 1Mb

# 当前客户端 22.22.22.22 机器上限速规则如下,可使用下面命令查看当前bond0网卡限速情况

~# tc qdisc show dev bond0
qdisc htb 1: root refcnt 17 r2q 10 default 0x30 direct_packets_stat 7 direct_qlen 1000

安装流程

apt-get install  iperf3 -yy

常用参数

(1)-s: 作为服务器模式运行,此时启动监听端口默认为 5201 ,也可使用 -p 指定监听端口
iperf3 -s

实用举例:

# 例如此处,在 11.11.11.11 上执行 iperf3 -s ,作为启动的服务端
iperf3 -s
(2)-c <server_ip>: 作为客户端模式运行,连接到指定的服务器主机名或 IP 地址,若非默认端口,则使用 -p 指定连接服务端启动的监听端口
iperf3 -c <server_ip>

实用举例:

# 例如次此处,在  22.22.22.22 上,连接到11.11.11.11
iperf3 -c  11.11.11.11

# 客户端输出结果如下:
Connecting to host 11.11.11.11, port 5201
[  5] local 22.22.22.22 port 44548 connected to 11.11.11.11 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   345 KBytes  2.82 Mbits/sec    0   50.9 KBytes
[  5]   1.00-2.00   sec   147 KBytes  1.20 Mbits/sec    0   50.9 KBytes
[  5]   2.00-3.00   sec   127 KBytes  1.04 Mbits/sec    0   50.9 KBytes
[  5]   3.00-4.00   sec   127 KBytes  1.04 Mbits/sec    0   50.9 KBytes
[  5]   4.00-5.00   sec   127 KBytes  1.04 Mbits/sec    0   50.9 KBytes
[  5]   5.00-6.00   sec   127 KBytes  1.04 Mbits/sec    0   50.9 KBytes
[  5]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec    0   50.9 KBytes
[  5]   7.00-8.00   sec   127 KBytes  1.04 Mbits/sec    0   50.9 KBytes
[  5]   8.00-9.00   sec   127 KBytes  1.04 Mbits/sec    0   50.9 KBytes
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    0   50.9 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.23 MBytes  1.03 Mbits/sec    0             sender
[  5]   0.00-10.11  sec  1.04 MBytes   859 Kbits/sec                  receiver

iperf Done.

### 各参数解读
- ID: 测试流的唯一标识符。这对于多个并行流的测试非常有用,可以区分不同流的数据。

- Interval: 表示测试过程中每个报告的时间间隔。通常格式为 `start_time - end_time`,单位是秒。这个时间间隔表示当前统计数据所属的时间段。

- Transfer: 传输的数据量,通常以字节(B)、千字节(KB)、兆字节(MB)或千兆字节(GB)为单位。这个数字表示在当前时间间隔内传输的数据总量。

- Bitrate: 数据传输速率,通常以比特每秒(bps)、千比特每秒(Kbps)、兆比特每秒(Mbps)或千兆比特每秒(Gbps)为单位。这个数字表示在当前时间间隔内的平均数据传输速率。

- Retr: 重传次数。这个字段表示在当前时间间隔内,TCP 协议重传数据包的次数。重传通常是由于网络拥塞或数据包丢失引起的。

- Cwnd: 拥塞窗口大小(Congestion Window),单位为字节。这个字段表示 TCP 协议在当前时间间隔内的拥塞控制窗口大小。拥塞窗口大小是 TCP 控制流量的一种方式,用以决定在网络上能发送多少数据而不会导致拥塞。
(3)-t <time>: 设置测试持续时间,单位为秒(默认是 10 秒)。
 iperf3 -c <server_ip> -t 30

实用举例:

# 设置测试30s
iperf3 -c  11.11.11.11 -t 30
(4)-b <bandwidth>: 指定目标带宽,支持 K(Kbps)、M(Mbps)、G(Gbps)等单位,默认是无限制。-u 常用于 UDP 测试。
iperf3 -c <server_ip> -u -b 100M ,且使用UPD协议

实用举例:

# 设置测试指定目标宽带为 100M
iperf3 -c 11.11.11.11 -u -b 100M
(5)-P <num>: 设置并行的客户端流数量,用于并行传输测试。
  iperf3 -c <server_ip> -P 4

实用举例:

# 设置 5 个并行的客户端流量数
iperf3 -c 11.11.11.11 -P 5
(6)-R: 反向测试,服务器向客户端发送数据,主要测试限制带宽机器入方向流量是否有问题
iperf3 -c <server_ip> -R

实用举例:

# 客户端使用下面命令,默认服务端向客户端发送数据
iperf3 -c 11.11.11.11 -R

其他参数支持

(1)-J: 打印 JSON 格式的输出结果
iperf3 -c <server_ip> -J
(2)--logfile: 将测试结果保存到文件
iperf3 -c <server_ip> --logfile result.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值