在项目运行过程中,经常有内存溢出,普通的info,error,debug日志并不能很好的分析的时候,需要借助jvm自带的命令进行相关堆信息的输出
XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/apps/heapdump.dump
如 启动命令为
nohup java -jar -Xmx512m -Xmx1024m test20210811.jar
修改命令为
nohup java -jar -Xmx512m -Xmx1024m XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/apps/heapdump.dump test20210811.jar
注意
对应的存放路径,每个目录都需要存在,如果缺失,则需要手动添加目录
在重新启动项目后,当堆溢出的时候,就会在目标目录输出一个文件,通过文件,即可分析相关运行情况

当Java应用程序出现内存溢出时,通过添加JVM参数可以触发Heap Dump,便于后期分析。将`XX:+HeapDumpOnOutOfMemoryError`和`XX:HeapDumpPath`设置到启动命令中,例如`nohup java -jar -Xmx512m -Xms1024m XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/apps/heapdump.dump test20210811.jar`,确保路径存在,以便在内存溢出时生成堆转储文件,从而帮助诊断问题。
797

被折叠的 条评论
为什么被折叠?



