JVM 问题排查分析
系统架构设计合理,大部分系统都能正常运行,出现系统崩溃的情况是小概率事件
排查分析的目的主要有: 解决问题和故障 排查系统风险隐患
问题的复杂程度可以分为: 常规问题 疑难杂症
排查方式两种: 严密的系统性排查 猜测驱动 凭借经验排查
为什么排查困难?
生产环境中对特定问题 有限制
影响客户的时间越短越好
安全方面的限制 多人审核 或者上补丁也非常耗时
工具引发的问题;
安装某些工具在特定场景下可能会使得情况变得更糟
比如:对jvm进行堆转储可以使得jvm暂停几十秒或者更长时间
打印更细粒度的日志 会引入其他问题 io 磁盘等
增加探测器或者分析器会有更大的开销
测试开发诊断需要注意的问题
生产测试数据源不同
某些问题可能不会复现
应用程序也可能不一样 配置也可能明显不同
开发环境抽样分析 测试环境验证 生产环境做好监控
典型的web应用系统:至少应该集成以下部分:
日志监控 系统监控 (cpu 内存 磁盘 网络) 系统性能监控
确保系统发布前 开发环境做过系统性能分析,经过验收测试,减少生产故障
了解生产环境部署做好监控,故障发生时,可预料的方式,更快的做出响应
标准的JVM参数配置


可量化的方式进行性能调优:
系统容量 吞吐量 响应时间
可以进行排查的点
查询业务日志
查询系统资源和监控信息
查看性能指标
查系统日志
APM
排查系统应用
排查资源竞争,坏邻居效应
疑难问题排查分析手段: DUMP线程 DUMP内存 抽样 调整代码 异步化 削峰填谷

浙公网安备 33010602011771号