一、压力测试的核心目标与指标
1. 测试目的
- 评估服务器在极限流量下的稳定性
- 识别业务瓶颈(CPU、带宽、连接数)
- 量化DDoS/CC攻击防御需求
2. 关键性能指标
指标 | 说明 | 测试工具 |
---|---|---|
QPS(每秒请求) | 服务器最大处理能力 | Apache JMeter、wrk |
带宽吞吐 | 网络接口的流量承载上限 | iperf3、iftop |
TCP连接数 | 最大并发连接数(防连接耗尽攻击) | hping3、netstat |
资源占用率 | CPU/内存/磁盘IO的峰值负载 | stress-ng、top |
二、四步压力测试实战
1. 测试环境搭建
# 安装测试工具
sudo apt-get install apache2-utils hping3 iperf3 stress-ng
# 创建测试专用网络(隔离生产环境)
docker network create test-net
2. 模拟DDoS攻击(四层协议)
# SYN Flood攻击测试(持续60秒)
hping3 -S --flood -V -p 80 目标IP
# 监控指标
watch -n 1 "netstat -ant | awk '{print \$6}' | sort | uniq -c"
结果分析:
- 若
SYN_RECV
状态连接数超过10,000且服务器无响应,需选择支持SYN Cookie的高防方案(如群联的TCP协议深度防护)。
3. 模拟CC攻击(七层协议)
# 使用JMeter发起HTTP GET请求(1000并发)
jmeter -n -t cc_test.jmx -l result.jtl
# 解析测试报告
cat result.jtl | grep "false" | wc -l # 统计失败请求
配置示例(cc_test.jmx
):
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="CC Attack">
<intProp name="ThreadGroup.num_threads">1000</intProp>
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
</ThreadGroup>
4. 带宽极限测试
# 使用iperf3打满带宽(客户端→服务器)
iperf3 -c 目标IP -t 60 -P 10
# 监控实时带宽
iftop -i eth0 -B
决策依据:
- 若服务器在50Gbps流量下崩溃,需选择≥50G防护套餐(参考群联资费表“大陆50G高防套餐¥900/月”)。
三、测试报告与高防选型匹配
测试结果 | 群联高防推荐方案 | 优势对比(vs传统方案) |
---|---|---|
最大承受50Gbps DDoS流量 | 50G高防套餐(¥900/月) | 成本比阿里云低40% |
CC攻击导致API成功率<80% | AI智能云防护(内置不限量CC防御) | 误封率0%(传统方案约5%) |
连接数峰值50万时服务崩溃 | 弹性扩容至G口共享套餐(¥2,900/月) | 秒级自动调度,无需人工干预 |