定位思路与分层检查
在CentOS端的压测执行与数据收集
jmeter -n -t /path/to/testplan.jmx -l /path/to/logfile.jtl -e -o /path/to/resultssummary + 6440 in 00:00:21 313.9/s 表示TPS≈313.9),用于与系统资源曲线对齐分析。top/htop、vmstat、iostat -x 1、nloadnmon -f -T -s 5 -c 720 -m /root/nmon_result(每5秒一次,共720次≈1小时),事后用nmon analyser生成图表。关键指标与瓶颈判定对照表
| 现象 | 关键指标 | 可能瓶颈 | 下一步动作 |
|---|---|---|---|
| 吞吐上不去、响应时间随并发陡增 | CPU接近100%、load高 | 压力机或应用CPU计算密集 | 降低并发验证;用top/perf定位热点;优化代码/SQL/缓存 |
| 吞吐稳定但P95/P99很高 | 应用/DB CPU不高、DB慢查询多 | 慢SQL/索引缺失/锁等待 | 开启慢查询日志、分析执行计划、加索引/改写SQL |
| 大量超时/连接失败 | 连接池满、TIME_WAIT高、队列堆积 | 连接数上限/后端瓶颈 | 提升连接池/内核/中间件配置;检查后端健康 |
| 网络吞吐封顶 | 带宽跑满、丢包/重传 | 网络带宽不足 | 升级带宽、就近压测、压缩/合并请求 |
| 磁盘繁忙 | await高、svctm高、util≈100% | 磁盘IO瓶颈 | 换SSD、优化日志/落盘策略、减少同步IO |
| 应用抖动/卡顿 | GC频繁、线程阻塞 | JVM/代码问题 | jstat -gc、生成heapdump、jstack查死锁/阻塞 |
服务端与应用层深入定位
jstack <pid> > jstack.log,查BLOCKED/WAITING与死锁。jstat -gc <pid> 1s观察YGC/FGC次数与耗时;必要时jmap -heap/dump分析内存与泄漏。压力机与网络优化要点
deadline/noop)。somaxconn、tcp_max_syn_backlog、tcp_fin_timeout等),并启用网卡多队列提升并发收发包能力。