一、梯度压测核心逻辑
阶梯式加压策略:
从基线并发(如1万)起步,按20%增量逐步提升压力(1万→1.2万→1.44万→1.73万→2.08万)。每级压力稳定运行3-5分钟,记录TPS、响应时间、错误率三维指标。通过观察指标突变,锁定系统承载临界值。
拐点判定法则:
吞吐量拐点:TPS增幅低于并发增幅的50%(如并发升20%,TPS仅增5%)。
延迟拐点:P99响应时间突破业务容忍阈值(如从200ms突增至800ms)。
错误拐点:连续出现超时或5xx错误(错误率>0.1%)。
二、四步定位性能拐点
第一步:分层监控瓶颈
系统层:top监控CPU%sys>30%为内核瓶颈;iostat检测磁盘%util>80%且await>10ms为I/O瓶颈。
应用层:JVM使用jstack统计BLOCKED线程占比>10%表锁竞争;数据库SHOW PROCESSLIST分析慢查询堆积。
第二步:动态加压采集
初始值为预估并发的50%(例:目标10万则从5万起)。
每级加压20%,间隔2分钟,实时记录三指标。
第三步:拐点精准标定
取突变前一级并发量为最优值(例:17.3万并发时TPS=1.2万/响应时间=0.8s;20.8万并发时响应时间=1.5s → 拐点为17.3万)。
第四步:根因分析与调优
CPU瓶颈 → 优化线程池/算法逻辑/热点缓存。
I/O瓶颈 → 批量读写/SSD升级/句柄扩容。
数据库瓶颈 → 慢查询索引优化/读写分离。
三、十万级并发压测关键技术
分布式集群支撑:
百台压测机构建集群:主机配置remote_hosts=ip1:1099,ip2:1099,从机启动jmeter-server。
避免单机端口耗尽:优化jmeter.properties网络参数,禁用冗余监听器。
参数化海量数据:
千万级用户数据预存Redis,JMeter通过BeanShell分段读取。
CSV文件分片策略:拆分为200份按线程号动态加载。
四、结果验证与资源规划
验收达标条件:
拐点并发下持续运行10分钟,TPS波动<10%、P99延迟≤阈值、错误率<0.1%。
容量规划公式:
理论最大并发 = 稳定RPS × 平均响应时间(例:RPS=793/s × 160ms ≈ 127并发)。
生产环境预留1.5倍冗余(例:实测拐点17.3万 → 建议容量26万)