本文目录导读:

对网络进行压力测试,通常关注的是吞吐量(带宽)、延迟(响应时间)、并发连接数以及丢包率,你需要针对不同的网络场景选择合适的工具。
以下是几种主流工具及其对应的压测方法:
核心工具及场景
iPerf3:最常用的带宽和吞吐量测试工具
这是压测“网络管道”有多粗的标配工具。
- 适用场景:测试两台机器之间TCP或UDP的最大带宽、丢包和抖动。
- 原理:一台作为服务器,一台作为客户端,持续发送数据流并统计结果。
- 操作方法:
- 在服务器端运行:
iperf3 -s(默认监听5201端口) - 在客户端运行(TCP压测):
iperf3 -c <服务器IP> -t 30 -P 10-t 30:持续30秒。-P 10:使用10个并行连接,模拟多线程填满带宽。
- UDP压测(模拟视频/语音流量):
iperf3 -c <服务器IP> -u -b 1000M -t 30-u:UDP模式。-b 1000M:尝试以1000Mbps的速率发包,观察实际接收速率和丢包率。
- 在服务器端运行:
hping3:高级的协议和并发压测
如果你需要模拟复杂的网络攻击或测试防火墙/路由器的抗压能力,hping3非常灵活。
- 适用场景:测试TCP SYN Flood(三次握手半开连接)、ICMP Flood、自定义协议栈压力。
- 操作方法:
- 测试并发连接数(向目标端口发送大量SYN包):
hping3 -S -p 80 --flood <目标IP>-S:发送SYN包(建立连接请求)。--flood:以最快速度发包。
- 测试网络层压力(发送大量大包):
hping3 -1 --flood -d 1400 <目标IP>-1:ICMP协议(ping包)。-d 1400:包大小1400字节。
- 测试并发连接数(向目标端口发送大量SYN包):
netperf:专业的吞吐量和延迟测试
与iperf3类似,但提供了更丰富的指标,如TCP连接建立/关闭速率、传输事务速率等。
- 适用场景:精准测量网络在不同负载下的表现。
- 操作方法:
- 服务器端:
netserver - 客户端TCP批量测试:
netperf -H <服务器IP> -l 60 - 客户端TCP请求/响应测试(模拟HTTP短连接):
netperf -H <服务器IP> -t TCP_RR -l 60-t TCP_RR:测试一次请求一次响应的往返延迟(事务速率)。
- 服务器端:
MTR(My Traceroute):实时分析网络路径和丢包
虽然不是纯粹的“压测”工具,但在压测过程中,用来定位“瓶颈在哪一跳”非常有效。
- 作用:持续发送数据包并显示路径上每一跳的丢包率和延迟。
- 操作方法:
mtr -r -c 100 <目标IP>- 会从本机到目标IP,输出每个节点(路由器)的丢包和延迟情况。
- 如果压测时发现丢包,用MTR可以看到是中间某台路由器扛不住了,还是目标服务器本身不行。
进阶:模拟应用层网络压力(HTTP/WebSocket)
工具主要工作在传输层(TCP/UDP),如果你的目标是压测Web服务器的网络处理能力(如Nginx、反向代理、负载均衡器),需要应用层工具,因为它们能模拟真实用户行为。
- wrk / wrk2:专为HTTP设计的压测工具,能用少量线程压出极高的并发连接。
wrk -t12 -c400 -d30s http://<目标URL>(12个线程,400个并发连接,持续30秒)。
- Locust / JMeter:如果要模拟复杂的登录、购物车等业务流程对网络连接的影响,这些工具更合适,它们的分布式模式可以模拟上万台终端。
压测网络时需关注的指标
在压测过程中,你需要重点关注以下数据,而不是只看“跑满了多少带宽”:
- 吞吐量:单位时间内成功传输的数据量(Mbps / Gbps)。关键:是否达到了理论链路带宽的90%以上?如果没到,说明瓶颈可能在CPU、网卡配置或中间设备上。
- 延迟:
- 平均延迟(Latency):数据包往返时间。
- 抖动(Jitter):延迟的方差,UDP应用(VoIP、视频)尤其敏感。
- 长尾延迟(P99/P999):最慢的1%或0.1%的请求延迟,如果这个值很高,说明网络存在突发拥塞。
- 丢包率:重传率,TCP协议下,超过0.1%的丢包率通常意味着网络链路已过载或设备性能不足。
- 并发连接数:系统能同时维持多少个TCP连接,特别对防火墙、负载均衡器、Nginx非常重要,工具如hping3或wrk可以观察连接建立速率。
一个典型的网络压测流程(以办公室到IDC为例)
假设你要测试公司办公网络到IDC机房的专线性能:
- 基线测试:
- 在非高峰时段,用
iperf3 -P 4 -t 10跑一次,记录最大带宽、延迟和丢包率,假设是900Mbps,2ms,0%。
- 在非高峰时段,用
- 长时间压力测试:
- 用
iperf3 -P 16 -t 3600压测1小时,观察中间是否出现掉速或丢包,如果丢包突然增加,说明网络设备有过热或缓冲区溢出的情况。
- 用
- 并发连接测试:
- 用
hping3 -S -p 80 --flood <目标> -c 100000测试中间防火墙或路由器能承受多少半开连接,如果压到一半连不上,说明安全策略或连接表满了。
- 用
- 混合流量测试:
同时运行大文件传输(iperf3)和小包实时应用(netperf TCP_RR),观察大流量是否会导致小包延迟剧烈增加(即“缓冲膨胀”效应)。
- 问题定位:
- 如果丢包,运行
mtr <目标IP>看是哪一跳出的问题。
- 如果丢包,运行
| 工具 | 最佳用途 | 命令示例(客户端) |
|---|---|---|
| iPerf3 | 带宽、UDP抖动/丢包 | iperf3 -c 192.168.1.1 -P 10 -t 30 |
| hping3 | 并发连接、协议攻击、包大小 | hping3 -S -p 80 --flood 192.168.1.1 |
| netperf | 事务速率、精细延迟 | netperf -H 192.168.1.1 -t TCP_RR -l 30 |
| wrk | Web服务HTTP并发 | wrk -t12 -c400 -d30s http://192.168.1.1/ |
| mtr | 路径诊断、定位瓶颈节点 | mtr -r -c 50 192.168.1.1 |
一个非常重要的安全提醒:不要对未经授权的目标网络进行压测,网络压力测试可能会影响生产环境,甚至被误判为DDoS攻击,请在受控的测试环境或经过明确授权的链路中进行。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播