0
点赞
收藏
分享

微信扫一扫

GDELT情感分析

老牛走世界 2023-05-23 阅读 66

造成OOM的原因

在这里插入图片描述

定位OOM

针对第一和第二种情况需要定位OOM
系统已经挂了:
通过堆dump文件定位。
当JVM发生OOM时,自动生成DUMP文件:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}

java -Xms10M -Xmx10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录} -jar xxx.jar

对生产的dump文件,用JVisualVm分析,查看类的实例数,占内存的大小,找到gcroot,查看线程,定位到具体的代码。

系统没有挂:
生成dump文件:(注意会造成full gc,导致STW)
打印jvm heap的直方图,但是只答应存活对象的情况,对象的数量、内存大小

jmap -histo:live 进程id
jmap -dump:format=b,file=outfile 进程id

可以将进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(Memory Analysis Tool)或与jhat (Java Heap Analysis Tool)一起使用,能够以图像的形式直观的展示当前内存是否有问题。JVisualVm.
阿尔萨斯工具(arthas)

针对第三种情况
运行java程序
java -jar xxx.jar
后台运行
java -jar xxx.jar &
查看进行的内存信息
jmap -heap 进程id

举报

相关推荐

0 条评论