# 《AI 新范式》第7节:压测项目分析性能
作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/s9kU2 (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
线上压测 · 瓶颈定位 · 参数调优,让应用扛住真实流量。
# 一、本章诉求
使用 AB 和 Arthas 对线上应用进行压力测试,定位性能瓶颈,通过慢查询优化、缓存命中率提升、连接池调优和 JVM 参数调整,让应用扛住真实流量。
# 二、压测工具与实战
# 1. wrk 轻量压测
单机 HTTP 压测利器,一条命令快速获取 QPS、延迟分布。
# 2. JMeter 全景压测
GUI 编写测试计划,模拟多场景、多接口组合压测。
# 3. 关键指标
TPS/QPS、P99 延迟、错误率,三个维度判断服务健康。
# 三、wrk 快速压测
# 安装 wrk
sudo apt install wrk
# 12线程 200连接 持续30秒
wrk -t12 -c200 -d30s \
http://47.98.x.x:8080/api/form/list
# 输出示例
Requests/sec: 3256.21
Latency P99: 45.3ms
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 四、JMeter 测试计划
# 命令行运行
jmeter -n -t form_test.jmx \
-l result.jtl \
-e -o report/
# 测试场景设计
线程组: 100线程, Ramp-up 10s
循环: 50次
断言: HTTP 200
监听: 聚合报告 + 响应图
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 五、性能分析与调优
整体调优流程如下:
🔥 压测施压(发现问题)
↓ 定位瓶颈
🔍 分析瓶颈(MySQL / Redis / JVM)
↓ 针对优化
✅ 验证提升(TPS 提升 P99 下降)
1
2
3
4
5
2
3
4
5
# 1. MySQL 优化
# 慢查询日志
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 1;
# 分析慢查询
EXPLAIN SELECT * FROM form_data
WHERE form_id = 1;
# 添加索引
ALTER TABLE form_data
ADD INDEX idx_form_id (form_id);
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 2. Redis + JVM 调优
# Redis 连接池调优
lettuce.pool.max-active: 16
lettuce.pool.max-idle: 8
# JVM 启动参数
java -jar app.jar \
-Xms512m -Xmx512m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=50
# 查看 GC 日志
-Xlog:gc*:gc.log
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
💡 调优顺序:慢查询优化 → 缓存命中率 → 连接池 → JVM,逐项验证效果
# 六、读者作业
- 简单作业:使用 wrk 对你的应用接口进行压测,记录 QPS 和 P99 延迟数据。
- 复杂作业:思考 G1 和 CMS 垃圾收集器的区别?为什么 G1 更适合大内存应用?如何通过 GC 日志判断是否需要调优?

