本文压测主要用到iperf3命令,查看网络情况使用sar命令。
iperf3压测需要用到2台机器,1台server,1台client。
Iperf3是一个广泛使用的网络性能测量和调整工具。它的意义在于它是一个跨平台的工具,可以为任何网络提供标准化的性能测量。Iperf3具有客户端和服务器功能,可以创建数据流来测量两端之间单向或双向的网络吞吐量。典型的iperf3输出包含一个有时间标记的数据传输量和吞吐量测量的报告。
安装命令:yum install iperf3
常用参数:
服务器/客户端:
-p、 --端口#要侦听/连接的服务器端口
-i、 --周期性带宽报告之间的间隔秒数
-V、 --详细的输出
服务器:
-s、 --服务器以服务器模式运行
-D、 --daemon以守护进程的身份运行服务器
客户端:
-c、 --客户端<host>在客户端模式下运行,连接到<host>
-u、 --udp使用udp而不是TCP
-b、 --带宽#[KMG][/#]目标带宽,单位为比特/秒(0表示无限制)
(UDP默认为1 Mbit/sec,TCP无限制)
-t、 --time#传输时间(秒)(默认10秒)
-P、 --parallel#要运行的并行客户端流的数量,一般指定网卡队列数量
查看网卡数量可参考:https://cloud.tencent.com/document/product/213/68396
-R、 --以反向模式反向运行(服务器发送,客户端接收)
sar命令(System Activity Reporter)是一个用于监视Linux系统性能的工具,能够收集和报告CPU使用率、内存使用情况、磁盘I/O、网络流量和进程活动等关键性能指标。
安装命令: yum install sysstat
常用选项:
-u:监视CPU的利用率。
-r:监视内存的使用情况。
-b:监视磁盘I/O的负载。
-n:监视网络流量。
-d:监视设备的I/O负载。
-P:监视每个CPU的利用率
查看网络:
# sar -n DEV 1 3
# 1秒打印一次,总共打印3次
[root@test ~]# sar -n DEV 1 1
Linux 3.10.0-1160.119.1.el7.x86_64 (test) 01/18/2025 _x86_64_ (2 CPU)
08:45:19 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:45:20 PM eth0 11.00 8.00 0.82 1.18 0.00 0.00 0.00
08:45:20 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:45:20 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: eth0 11.00 8.00 0.82 1.18 0.00 0.00 0.00
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
# 输出结果
rxpck/s :每秒收包量,即接收 pps
txpck/s :每秒发包量,即发送 pps
rxkB/s :接收带宽
txkB/s :发送带宽
server端:
[root@test ~]# iperf3 -s -i 1
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 172.21.201.8, port 42452
[ 5] local 172.21.80.47 port 5201 connected to 172.21.201.8 port 42454
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 240 MBytes 2.01 Gbits/sec
[ 5] 1.00-2.00 sec 189 MBytes 1.58 Gbits/sec
[ 5] 2.00-3.00 sec 173 MBytes 1.45 Gbits/sec
[ 5] 3.00-4.00 sec 189 MBytes 1.59 Gbits/sec
[ 5] 4.00-5.00 sec 184 MBytes 1.54 Gbits/sec
[ 5] 5.00-6.00 sec 175 MBytes 1.47 Gbits/sec
[ 5] 6.00-7.00 sec 196 MBytes 1.65 Gbits/sec
[ 5] 7.00-8.00 sec 167 MBytes 1.40 Gbits/sec
[ 5] 8.00-9.00 sec 199 MBytes 1.67 Gbits/sec
[ 5] 9.00-10.00 sec 181 MBytes 1.52 Gbits/sec
[ 5] 10.00-10.04 sec 6.81 MBytes 1.49 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.04 sec 1.86 GBytes 1.59 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
client端:
[root@test2 ~]# iperf3 -c 172.21.80.47 -t 10 -i 1 -P 2
Connecting to host 172.21.80.47, port 5201
[ 4] local 172.21.201.8 port 42454 connected to 172.21.80.47 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 251 MBytes 2.11 Gbits/sec 1701 414 KBytes
[ 4] 1.00-2.00 sec 185 MBytes 1.55 Gbits/sec 299 205 KBytes
[ 4] 2.00-3.00 sec 172 MBytes 1.45 Gbits/sec 136 232 KBytes
[ 4] 3.00-4.00 sec 192 MBytes 1.61 Gbits/sec 197 350 KBytes
[ 4] 4.00-5.00 sec 186 MBytes 1.56 Gbits/sec 54 490 KBytes
[ 4] 5.00-6.00 sec 172 MBytes 1.45 Gbits/sec 215 360 KBytes
[ 4] 6.00-7.00 sec 196 MBytes 1.65 Gbits/sec 248 346 KBytes
[ 4] 7.00-8.00 sec 168 MBytes 1.41 Gbits/sec 210 379 KBytes
[ 4] 8.00-9.00 sec 199 MBytes 1.67 Gbits/sec 433 346 KBytes
[ 4] 9.00-10.00 sec 181 MBytes 1.52 Gbits/sec 126 335 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 1.86 GBytes 1.60 Gbits/sec 3619 sender
[ 4] 0.00-10.00 sec 1.86 GBytes 1.59 Gbits/sec receiver
iperf Done.
server端:
08:59:44 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:59:45 PM eth0 139062.00 7065.00 200710.89 456.58 0.00 0.00 0.00
08:59:45 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:59:45 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:59:45 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:59:46 PM eth0 133455.00 6818.00 192611.24 442.04 0.00 0.00 0.00
08:59:46 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:59:46 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
client端:
08:59:46 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:59:47 PM eth0 7029.00 3208.00 454.01 190815.61 0.00 0.00 0.00
08:59:47 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:59:47 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
08:59:48 PM eth0 7129.00 3317.00 460.37 195332.24 0.00 0.00 0.00
08:59:48 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
需要指定带宽,因为UDP默认为1 Mbit/sec,TCP无限制。
server端:
[root@test ~]# iperf3 -s -i 1
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 172.21.201.8, port 43496
[ 5] local 172.21.80.47 port 5201 connected to 172.21.201.8 port 54999
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 142 MBytes 1.19 Gbits/sec 0.003 ms 62683/167825 (37%)
[ 5] 1.00-2.00 sec 104 MBytes 868 Mbits/sec 0.007 ms 99102/175970 (56%)
[ 5] 2.00-3.00 sec 104 MBytes 872 Mbits/sec 0.002 ms 100070/177303 (56%)
[ 5] 3.00-4.00 sec 103 MBytes 868 Mbits/sec 0.002 ms 99867/176681 (57%)
[ 5] 4.00-5.00 sec 117 MBytes 981 Mbits/sec 0.005 ms 89792/176662 (51%)
[ 5] 5.00-6.00 sec 124 MBytes 1.04 Gbits/sec 0.001 ms 85300/177227 (48%)
[ 5] 6.00-7.00 sec 106 MBytes 891 Mbits/sec 0.001 ms 100031/178909 (56%)
[ 5] 7.00-8.00 sec 104 MBytes 869 Mbits/sec 0.002 ms 99305/176269 (56%)
[ 5] 8.00-9.00 sec 92.3 MBytes 774 Mbits/sec 0.002 ms 107295/175844 (61%)
[ 5] 9.00-10.00 sec 116 MBytes 970 Mbits/sec 0.001 ms 91942/177787 (52%)
[ 5] 10.00-10.04 sec 0.00 Bytes 0.00 bits/sec 0.001 ms 0/0 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec 0.001 ms 935387/1760477 (53%)
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
client端:
[root@test2 ~]# iperf3 -c 172.21.80.47 -t 10 -i 1 -P 2-u -b 2000M
Connecting to host 172.21.80.47, port 5201
[ 4] local 172.21.201.8 port 54999 connected to 172.21.80.47 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 226 MBytes 1.90 Gbits/sec 167829
[ 4] 1.00-2.00 sec 237 MBytes 1.99 Gbits/sec 176118
[ 4] 2.00-3.00 sec 239 MBytes 2.00 Gbits/sec 177165
[ 4] 3.00-4.00 sec 238 MBytes 2.00 Gbits/sec 176667
[ 4] 4.00-5.00 sec 238 MBytes 2.00 Gbits/sec 176797
[ 4] 5.00-6.00 sec 239 MBytes 2.00 Gbits/sec 177225
[ 4] 6.00-7.00 sec 241 MBytes 2.02 Gbits/sec 179052
[ 4] 7.00-8.00 sec 237 MBytes 1.99 Gbits/sec 176035
[ 4] 8.00-9.00 sec 237 MBytes 1.99 Gbits/sec 176099
[ 4] 9.00-10.00 sec 239 MBytes 2.01 Gbits/sec 177527
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 2.32 GBytes 1.99 Gbits/sec 0.001 ms 935387/1760477 (53%)
[ 4] Sent 1760477 datagrams
iperf Done.
如果主机带宽较高,使用上面的方法可能压测不到上限,可以使用for循环开多个端口压测。
server端:
[root@test ~]# for port in {10001..10005}; do iperf3 -s -p $port -D; done
[root@test ~]#
[root@test ~]# 启动5个端口监听
[root@test ~]# netstat -ntplu | grep iperf
tcp6 0 0 :::10001 :::* LISTEN 9347/iperf3
tcp6 0 0 :::10002 :::* LISTEN 9349/iperf3
tcp6 0 0 :::10003 :::* LISTEN 9351/iperf3
tcp6 0 0 :::10004 :::* LISTEN 9353/iperf3
tcp6 0 0 :::10005 :::* LISTEN 9355/iperf3
client端:
[root@test2 ~]# for port in {10001..10005}; do nohup iperf3 -c 172.21.80.47 -t 1000 -P 2 -p $port > output.log 2>&1 & done
[1] 9150
[2] 9151
[3] 9152
[4] 9153
[5] 9154
[root@test2 ~]#
[root@test2 ~]# ps aux | grep iperf3
root 9150 0.6 0.0 9872 1108 pts/10 S 21:45 0:00 iperf3 -c 172.21.80.47 -t 1000 -P 2 -p 10001
root 9151 0.5 0.0 9872 1108 pts/10 S 21:45 0:00 iperf3 -c 172.21.80.47 -t 1000 -P 2 -p 10002
root 9152 0.6 0.0 9872 1108 pts/10 S 21:45 0:00 iperf3 -c 172.21.80.47 -t 1000 -P 2 -p 10003
root 9153 0.5 0.0 9872 1108 pts/10 S 21:45 0:00 iperf3 -c 172.21.80.47 -t 1000 -P 2 -p 10004
root 9154 0.6 0.0 9872 1108 pts/10 S 21:45 0:00 iperf3 -c 172.21.80.47 -t 1000 -P 2 -p 10005
root 9302 0.0 0.0 112812 972 pts/10 S+ 21:45 0:00 grep --color=auto iperf3
[root@test2 ~]#
[root@test2 ~]# sar -n DEV 1 3
Linux 3.10.0-1160.119.1.el7.x86_64 (test2) 01/18/2025 _x86_64_ (2 CPU)
09:46:31 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
09:46:32 PM eth0 9838.00 10786.00 639.09 192362.48 0.00 0.00 0.00
09:46:32 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:46:32 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
09:46:33 PM eth0 8736.00 9698.00 568.24 189571.49 0.00 0.00 0.00
09:46:33 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:46:33 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
09:46:34 PM eth0 7843.00 9457.00 510.76 193750.48 0.00 0.00 0.00
09:46:34 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: eth0 8805.67 9980.33 572.70 191894.82 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@test2 ~]#
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。