JVM在容器内的最佳实践

参考

  • XmsXmx能适应所有JDK版本,但不能动态感知容器的Cgroups限制,且参数优先级最高,与其他参数一起配置时,其他参数不生效。

  • -XX:+UnlockExperimentalVMOptions-XX:+UseCGroupMemoryLimitForHeap在1.8.0_131版本开始启用,能动态感知容器的Cgroups限制,但最大堆内存只能使用容器Cgroups内存限制的1/4。

  • -XX:MaxRAMFraction-XX:MinRAMFraction在1.8.0_131版本开始启用,可以修改堆内存占容器Cgroups内存限制的百分比,但百分比的值不能自由指定(比如不能指定40%),在1.8.0_191版本开始弃用。

  • MaxRAMPercentageMinRAMPercentage在1.8.0_191版本开始启用,可以自定义修改堆内存占容器Cgroups内存限制的百分比。

  • -XX:InitialRAMPercentage  初始内存占比

-XX:MaxRAMPercentage=80.0 -XX:MinRAMPercentage=80.0 -XX:InitialRAMPercentage=80.0 -XX:NewRatio=1  稳定建议-xmx -xmx -xmn

以上仅适用于容器采用Cgroups v1版本,在Cgroups v2版本中jdk需要1.8.0_372、11.0.16及更高版本才能动态感知Cgroups的内存限制

 

  • jvm.gc.time:每分钟的GC耗时在1s以内,500ms以内尤佳
  • jvm.gc.meantime:每次YGC耗时在100ms以内,50ms以内尤佳
  • jvm.fullgc.count:FGC最多几小时1次,1天不到1次尤佳
  • jvm.fullgc.time:每次FGC耗时在1s以内,500ms以内尤佳
posted @   林夕之风  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示