常用jvm参数配置以及提供系统堆益处日志监控方法
常用jvm参数配置以及提供系统堆益处日志监控方法
小石头哥 发表于7个月前
常用jvm参数配置以及提供系统堆益处日志监控方法
  • 发表于 7个月前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 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 决定了函数调用的深度 每个线程都有独立的栈空间 局部变量、参数 分配在栈上

共有 人打赏支持
小石头哥
粉丝 8
博文 16
码字总数 13799
×
小石头哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: