01
压测基础认知
什么是压力测试、为什么需要压测、核心目标与衡量指标(QPS、TPS、RT、并发数)
入门指标
02
压测工具选型
JMeter、Locust、wrk、ab、Go-stress-testing 对比与选型策略
工具对比
03
压测环境搭建
单机/分布式/容器化压测环境(Docker Compose)
环境Docker
04
压测脚本编写(JMeter篇)
线程组配置、Sampler、Listener、断言、参数化、关联
JMeter脚本
05
压测脚本编写(Locust篇)
User类、TaskSet、HttpUser、wait_time、顺序与权重控制
LocustPython
06
压测脚本编写(wrk/ab篇)
wrk Lua脚本定制、ab命令行参数详解
wrkab
07
压测数据准备
测试数据构造策略、数据脱敏、数据隔离、数据清理
数据构造
08
压测执行策略
阶梯加压、恒定负载、突发流量、混合场景、稳定性测试
策略场景
09
压测监控体系
服务器/应用/中间件监控(CPU/内存/IO/JVM/GC/线程池)
监控可观测
10
压测结果分析
聚合报告解读、响应时间分布、吞吐量曲线、错误率分析
分析报告
11
性能瓶颈定位方法论
自上而下法、自下而上法、二分法、火焰图分析法
方法论火焰图
12
CPU瓶颈排查
CPU使用率过高、上下文切换频繁、load average异常、热点函数
CPU排查
13
内存瓶颈排查
内存泄漏、GC频繁、堆外内存溢出、OOM Killer、堆转储分析
内存GC
14
磁盘I/O瓶颈排查
iowait过高、磁盘吞吐量不足、inode耗尽、文件句柄泄漏
磁盘IO
15
网络瓶颈排查
带宽打满、TCP重传、连接池耗尽、DNS延迟、TIME_WAIT过多
网络TCP
16
数据库瓶颈排查
慢查询、连接池打满、锁等待、索引失效、死锁、主从延迟
数据库MySQL
17
缓存瓶颈排查
缓存穿透/击穿/雪崩、Redis热Key、大Key、内存碎片
缓存Redis
18
消息队列瓶颈排查
消息堆积、消费延迟、重复消费、顺序消费、死信队列
MQKafka
19
并发编程基础
进程、线程、协程、并发与并行、GIL锁、线程安全
并发基础
20
并发模型剖析
多线程模型、Reactor/Proactor/Actor模型、协程模型
模型Reactor
21
并发问题类型
竞态条件、死锁、活锁、饥饿、ABA问题、指令重排序
问题死锁
22
并发排查工具
jstack、jvisualvm、Arthas、gdb、perf、strace、pstack
工具Arthas
23
线程池排查
线程池参数调优、拒绝策略、队列积压、线程泄漏、动态调整
线程池调优
24
锁排查
synchronized、ReentrantLock、读写锁、乐观/悲观锁、锁升级、锁粗化
锁并发
25
并发容器排查
ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列、跳表
容器JUC
26
异步与回调排查
Future、CompletableFuture、回调地狱、线程切换开销、异步超时
异步回调
27
分布式并发问题
分布式锁(Redis/ZK)、分布式事务(TCC/Saga)、幂等性、全局ID
分布式锁
28
全链路压测
全链路压测设计、流量染色、影子库、挡板Mock、压测与生产隔离
全链路影子库
29
压测报告与复盘
压测报告模板、性能基线建立、瓶颈根因分析、优化建议、复盘文档
报告复盘
30
压测体系化建设
压测平台建设、CI/CD集成压测、常态化压测、容量规划、混沌工程
体系平台