JVM在容器内的最佳实践
-
Xms
和Xmx
能适应所有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版本开始弃用。 -
MaxRAMPercentage
和MinRAMPercentage
在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以内尤佳
坚持到无能为力,拼搏到感动自己
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)