重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
‐XX:MaxTenuringThreshold
设置新老年代晋升,大值为15,并行收集器的默认值为15,CMS收集器的默认为6。
‐XX:PretenureSizeThreshold
超过多大的对象直接在老年代分配,避免在新生代的Eden和S区不断复制
‐XX:+/‐ UseAdaptiveSizePolicy
启用自适应生成大小调整。默认情况下启用此选项。当eden : s1 : s2 为
8:1:1 时,这个参数启用后,实际上可能不是你设置的比例,会进行微调
‐XX:SurvivorRatio
默认为8,也就是说Eden占新生代的8/10,From幸存区和To幸存区各占新生代的1/10
‐XX:ConcGCThreads
设置用于并发GC的线程数。默认值取决于JVM可用的CPU数量。
‐Xsssize
设置栈内存的大小,设置的栈的大小决定了函数调用的大深度
‐Xms和‐Xmx
初始化堆内存,和大的堆内存,一般设置成一样大,内存的扩容涉及到内存的移动,开销更大
‐XX:ReservedCodeCacheSize
设置JIT编译代码的代码缓存大小
官网:
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/g1_gc_tuning.html#recommendat
不要手动设置新生代和老年代的大小,只要设置整个堆的大小
1).G1收集器在运行过程中,会自己调整新生代和老年代的大小
2). 其实是通过adapt代的大小来调整对象晋升的速度和年龄,从而达到为收集器设置的暂停时间目标,如果手动设置了大小就意味着放弃 了G1的自动调优。
不断调优暂停时间目标
1). 一般情况下这个值设置到100ms或者200ms都是可以的(不同情况下会不一样),但如果设置成50ms就不太合理。暂停时间设置的太短, 就会导致出现G1跟不上垃圾产生的速度。最终退化成Full GC。
2). 所以对这个参数的调优是一个持续的过程,逐步调整到最佳状态。暂停时间只是一个目标,并不能总是得到满足。
使用-XX:ConcGCThreads=n来增加标记线程的数量
适当增加堆内存大小
不正常的Full GC
有时候会发现系统刚刚启动的时候,就会发生一次Full GC,但是老年代空间比较充足,一般是由Metaspace区域引起的。可以通过Me taspaceSize适当增加其大家,比如256M。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧