JVM参数

作者: 颓废骚年 | 来源:发表于2024-11-25 19:14 被阅读0次
参数          描述
-Xms JVM堆内存的初始大小
-Xmx JVM堆内存的最大值
-Xmn 新生代(Young Generation)的大小
-Xss 设置每个线程的堆栈大小。通常只有几百K,决定了函数调用的深度
-XX:+PrintGC 打印GC简要信息
-XX:+PrintGCDetails 打印GC详细信息
-XX:+PrintGCDateStamps 打印GC发生的时间
-Xloggc:log/gc.log 指定GC log的位置,以文件输出
-XX:+PrintHeapAtGC 每一次GC前和GC后,都打印堆信息
-XX:+UseConcMarkSweepGC 使用CMS垃圾收集器
-XX:+UseG1GC 使用G1垃圾收集器
-XX:NewSize 年轻代初始内存
-XX:MaxNewSize 年轻代最大内存
-XX:NewRatio=3 设置年轻代和老年代的比例为1:3,默认=2
-XX:SurvivorRatio=8 年轻代中Eden区与Survivor区的大小比值(两个Survivor各=1,Eden=8)默认=8
-XX:MetaspaceSize=10M Metaspace扩容时触发FullGC的初始化阈值(Metaspace由于使用,不断扩容到-XX:MetaspaceSize参数指定的值,就会发生FGC;且之后每次Metaspace扩容都会发生FGC)
-XX:MaxMetaspaceSize=10M 为类的元数据分配的最大本地内存。
建议:MetaspaceSize和MaxMetaspaceSize设置一样大;
具体设置多大,建议稳定运行一段时间后通过jstat -gc pid确认且这个值大一些,对于大部分项目256m即可。
-XX:OnOutOfMemoryError=/bin/restart.sh 在OOM时,执行一个脚本
-XX:+HeapDumpOnOutOfMemoryError 发生java.lang.OutOfMemoryError异常时,dump heap文件。默认dump到当前目录
-XX:HeapDumpPath=/logs/xxx.heap.bin HeapDumpOnOutOfMemoryError的文件目录
-XX:MaxTenuringThreshold=15 设置在YGC的时候,新生代的对象正常情况下最多经过多少次YGC的过程会晋升到老生代,注意是表示最多而不是一定,也就是说某个对象的age并不是一定要达到这个值才会晋升到Old的,当你设置这个值的时候,第一次会以它为准,后面的就不一定以它为准了,而是JVM会自动计算在0~15之间决定,但不会超过这个值。如果配置了CMS GC,这个值默认是6;PS的话这个值默认是15。这个值最大你可以设置到15,因为jvm里就4个bit来存这个值,所以最大就是1111,即15;
-XX:TargetSurvivorRatio=50 一个计算期望S区存活大小(Desired survivor size)的参数. 默认参数为50,即50%
-XX:+PrintTenuringDistribution 打印S区各个age的对象信息

相关文章

网友评论

      本文标题:JVM参数

      本文链接:https://www.haomeiwen.com/subject/tpaxsjtx.html