文档章节

常用jvm参数配置以及提供系统堆益处日志监控方法

小石头哥
 小石头哥
发布于 2017/04/08 22:25
字数 430
阅读 8
收藏 0

-verbose:gc

-XX:+printGC

可以打印GC的简要信息

-XX:+PrintGCDetails

打印GC详细信息

-XX:+PrintGCTimeStamps

打印CG发生的时间戳

-Xloggc:log/gc.log

指定GC log的位置,以文件输出 帮助开发人员分析问题

-XX:+PrintHeapAtGC 每次一次GC后,都打印堆信息

-XX:+TraceClassLoading 监控类的加载

-XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息:

-Xmx –Xms 指定最大堆和最小堆

System.out.print("Xmx=");

System.out.println(Runtime.getRuntime().maxMemory()/1024.0/1024+"M");

System.out.print("free mem=");

System.out.println(Runtime.getRuntime().freeMemory()/1024.0/1024+"M");

System.out.print("total mem=");

System.out.println(Runtime.getRuntime().totalMemory()/1024.0/1024+"M"); 代码查看对内存使用情况

-Xmn 设置新生代大小

-XX:NewRatio 新生代(eden+2*s)和老年代(不包含永久区)的比值 4 表示 新生代:老年代=1:4,即年轻代占堆的1/5

-XX:SurvivorRatio 设置两个Survivor区和eden的比 8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10

-XX:+HeapDumpOnOutOfMemoryError OOM时导出堆到文件

-XX:+HeapDumpPath 导出OOM的路径

Xmx20m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump

-XX:OnOutOfMemoryError 在OOM时,执行一个脚本

"-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p“ 当程序OOM时,在D:/a.txt中将会生成线程的dump 可以在OOM时,发送邮件,甚至是重启程序

总结 根据实际事情调整新生代和幸存代的大小 官方推荐新生代占堆的3/8 幸存代占新生代的1/10 在OOM时,记得Dump出堆,确保可以排查现场问题

栈大小配置 -Xss 通常只有几百K 决定了函数调用的深度 每个线程都有独立的栈空间 局部变量、参数 分配在栈上

© 著作权归作者所有

共有 人打赏支持
上一篇: GC算法总结
下一篇: ActiveMQ安装
小石头哥

小石头哥

粉丝 8
博文 18
码字总数 14404
作品 0
广州
后端工程师
私信 提问