JVM 线上问题排查和性能调优也是面试常问的一个问题,尤其是社招中大厂的面试。
这篇文章,我会分享一些我看到的相关的案例。
下面是正文。
- 现象:线上某个服务有接口非常慢,通过监控链路查看发现,中间的 GAP 时间非常大,实际接口并没有消耗很多时间,并且在那段时间里有很多这样的请求。
- 分析:使用 JDK 自带的
jvisualvm
分析 dump 文件(MAT 也能分析)。 - 建议:对于 SQL 语句,如果监测到没有
where
条件的全表查询应该默认增加一个合适的limit
作为限制,防止这种问题拖垮整个系统 - 资料:实战案例:记一次 dump 文件分析历程转载 - HeapDump - 2022。