一、日志相关参数
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps 打印时间戳
-XX:+PrintGCDateStamps
-Xloggc:/tmp/gc.log 将GC日志输出到指定文件
-XX:PrintHeapAtGC 发生GC时,打印堆的使用情况
-XX:PrintTenuringDistribution 发生GC时,打印young区的年龄信息
1.这个jvm启动参数含义:当堆内存空间溢出时输出堆的内存快照。
2.配合参数: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/home/tomcat/logs/...
3、触发条件:java.lang.OutOfMemo-ryError: Java heap space
也就是说当发生OutOfMemoryError错误时,才能触发-XX:HeapDumpOnOutOfMemoryError 输出到-XX:HeapDumpPath指定位置。
4.关于fullgc:所以Systerm.gc() 以及fullgc 不会触发-XX:HeapDumpOnOutOfMemoryError
二、复现一下内存空间溢出
- 创建一个spring boot程序。只要能够运行就可以。
- 指定内存最大值为10M(-Xmx10M)。10M,肯定启动不了 spring boot ,肯定内存空间溢出。
-
eclipse中的执行结果: