📌 问题描述

用户反馈”订单查询”接口响应慢,请从JVM GC、慢SQL、网络I/O、线程池阻塞四个维度给出具体的排查路径。

✅ 回答要点

  1. JVM GC:先用jstat -gcutil <pid> 1000查看老年代占用、Full GC次数。若频繁Full GC,dump堆(jmap)分析大对象或内存泄漏。

  2. 慢SQL:开启MySQL慢查询日志,定位对应SQL,用EXPLAIN查看索引使用情况。常见问题:索引失效、全表扫描、深分页。优化索引或改写SQL。

  3. 网络I/O:使用netstat -anp查看连接状态,或用tcpdump抓包分析延迟。检查客户端与服务端是否跨机房,DNS解析慢等。

  4. 线程池阻塞:查看线程池活跃线程数、队列积压(ThreadPoolExecutorgetQueue().size())。若队列满了触发拒绝策略,可增加最大线程数或优化业务逻辑。

🔗 相关知识

💡 记忆技巧

📚 参考资料