Advertisement

JVM性能优化发生OOM故障定位机制

阅读量:

前提概要

针对JVM服务在运行过程中可能出现的OOM(Out Of Memory)问题,作为Java技术栈开发人员,掌握相应的解决方法是一项必备的实践技能。以下整理了一些较为通用的应对策略,旨在为相关技术人员提供参考与帮助。

原因分析

某Java服务出现了OOM,最常见的原因为:

可能由于内存分配设置不足,而实际业务运行过程中消耗了大量内存(属于正常情况)

存在某个对象被反复申请但未被及时释放,导致内存持续泄漏,最终引发内存耗尽(属于内存泄漏问题,与代码编写相关)

存在某种资源被重复申请,系统资源逐渐耗尽,例如:持续创建线程或频繁建立网络连接(涉及线程创建问题,属于代码层面的缺陷)

排查方案

确认是不是内存本身就分配过小

分析:jmap -heap pid 是一种用于检查 Java 进程堆内存使用情况的命令行工具,能够提供关于堆内存配置及当前使用状态的详细信息。

从上图中可观察到新生代与老生代堆内存的分配规模及其使用状况,从而判断

全部评论 (0)

还没有任何评论哟~