JVM启动参数设置发生OOM异常,生成dump

1、设置参数

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=temp/heapsump.prof

-XX:+HeapDumpOutOfMemoryError设置当发生OOM时生成Dump文件
-XX:HeapDumpPath设置发生OOM时生成的Dump文件存放路径

2、示例

java -Xms750m -Xmx750m -Xmn512m -Xss1024k -XX:MaxPermSize=128m
-XX:+UseConcMarkSweepGC 
-XX:CMSFullGCsBeforeCompaction=5
-XX:+UseCMSCompactAtFullCollection 
-XX:+PrintGC 
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps 
-Xloggc:/tmp/jvm.log 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=/tmp/heapdump.hprof
-Dfile.encoding=utf-8 -jar /data/app/test.jar

1、-Xms750m:表示堆内存初始值为750M
2、-Xmx750m:表示堆内存最大值为750M
3、-Xmn512m:设置年轻代大小为512M。整个JVM内存=年轻代大小+老年代大小+持久代大小。持久代一般为64m,所以增加年轻代大小,会减小老年代大小。sun官方推荐为整个堆配置的3/8。
4、-Xss1024K:设置每个线程的堆栈大小。JDK5以后每个线程堆栈大小为1M。根据应用的所需内存大小进行调整。在相同的物理内存下,减少这个值,可以生成更多的线程。但是操作系统对于一个进程内的线程数是有限制的,并不能无线生成。
5、-XX:MaxPermSize:设置永久代的大小,此属性在JDK8之后不在提供
6、-XX:+UseConcMarkSweepGC:设置使用CMS垃圾收集器
7、-XX:+UseCMSCompactAtFullCollection:在发生FULLGC后进行一次整理,过程是独占的,会导致停顿事件加长。
8、-XX:+PrintGC:每次GC时打印相关信息。
9、-XX:+PrintGCDetails:每次GC时打印详细信息
10、-XX:+PrintGCTimeStamps 打印每次GC的时间戳
11、-Xloggc:/tmp/jvm.log 设置垃圾回收日志打印的文件,文件名称可以自定义
12、-XX:+HeapDumpOnOutOfMemoryError 设置当首次遭遇内存溢出时导出此时堆中相关信息13、-XX:HeapDumpPath=/tmp/heapdump.hprof 指定导出堆信息时的路径或文件名**

3、直接使用jmap生成dump文件

jmap -dump:format=b,file=heapdump.hprof pid
自动生成到当前目录下

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值