📌 问题描述
用户反馈”订单查询”接口响应慢,请从JVM GC、慢SQL、网络I/O、线程池阻塞四个维度给出具体的排查路径。
✅ 回答要点
-
JVM GC:先用
jstat -gcutil <pid> 1000查看老年代占用、Full GC次数。若频繁Full GC,dump堆(jmap)分析大对象或内存泄漏。 -
慢SQL:开启MySQL慢查询日志,定位对应SQL,用
EXPLAIN查看索引使用情况。常见问题:索引失效、全表扫描、深分页。优化索引或改写SQL。 -
网络I/O:使用
netstat -anp查看连接状态,或用tcpdump抓包分析延迟。检查客户端与服务端是否跨机房,DNS解析慢等。 -
线程池阻塞:查看线程池活跃线程数、队列积压(
ThreadPoolExecutor的getQueue().size())。若队列满了触发拒绝策略,可增加最大线程数或优化业务逻辑。
🔗 相关知识
- 接口性能排查指南 - 性能排查四维度详解
- Java线程池与内存管理 - 线程池监控与优化