一、堆栈信息自动保存:配置jvm参数
jvm启动参数中添加如下参数:用于OOM时自动保存堆栈信息;保存GC日志信息。
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/heapdump.hprof
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/tmp/gc-%t.log
参数
描述
-XX:+HeapDumpOnOutOfMemoryError
JVM发生OOM时,生成heap dump文件
-XX:HeapDumpPath
heap dump文件的路径
-XX:+PrintGCDetails
打印GC详细日志
-XX:+PrintGCDateStamps
GC日志中打印执行时间戳
-Xloggc
把GC日志信息记录到文件。%t :为GC日志文件添加启动时间戳后缀,格式为:YYYY-MM-DD_HH-MM-SS
完整jvm参数推荐配置:8G物理内存
6G~8G物理内存以上推荐使用 G1 垃圾回收器
-Xms4096m
-Xmx4096m
-XX:MetaspaceSize=512M
-XX:MaxDirectMemorySize=1024M
-Xss256k
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/jvm/heapdump.hprof
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/tmp/jvm/gc-%t.log
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=100M
-Djava.net.preferIPv4Stack=true
-Duser.timezone=Asia/Shanghai
-Dfile.encoding=UTF-8