JVM 问题排查分析

系统架构设计合理,大部分系统都能正常运行,出现系统崩溃的情况是小概率事件 

排查分析的目的主要有:    解决问题和故障      排查系统风险隐患

问题的复杂程度可以分为:    常规问题                 疑难杂症

排查方式两种:    严密的系统性排查     猜测驱动  凭借经验排查

 

为什么排查困难? 

生产环境中对特定问题 有限制

影响客户的时间越短越好

安全方面的限制   多人审核   或者上补丁也非常耗时

 

工具引发的问题;

     安装某些工具在特定场景下可能会使得情况变得更糟

      比如:对jvm进行堆转储可以使得jvm暂停几十秒或者更长时间

                 打印更细粒度的日志  会引入其他问题   io  磁盘等

                   增加探测器或者分析器会有更大的开销

 

测试开发诊断需要注意的问题

       生产测试数据源不同    

        某些问题可能不会复现

       应用程序也可能不一样   配置也可能明显不同

 

开发环境抽样分析    测试环境验证      生产环境做好监控

典型的web应用系统:至少应该集成以下部分:

日志监控          系统监控 (cpu  内存 磁盘  网络)    系统性能监控

 

确保系统发布前  开发环境做过系统性能分析,经过验收测试,减少生产故障

了解生产环境部署做好监控,故障发生时,可预料的方式,更快的做出响应

 

标准的JVM参数配置

 

 

 

 

可量化的方式进行性能调优:

   系统容量       吞吐量   响应时间

 

可以进行排查的点

        查询业务日志

         查询系统资源和监控信息

         查看性能指标

        查系统日志

          APM

           排查系统应用

           排查资源竞争,坏邻居效应

    疑难问题排查分析手段:   DUMP线程    DUMP内存   抽样  调整代码  异步化  削峰填谷

 

posted @ 2022-04-21 16:09  李文浩learning  阅读(129)  评论(0)    收藏  举报