当我们设置 Xmx 和 Xms 大小相等时会发生啥
Posted
技术标签:
【中文标题】当我们设置 Xmx 和 Xms 大小相等时会发生啥【英文标题】:What happens when we set Xmx and Xms equal size当我们设置 Xmx 和 Xms 大小相等时会发生什么 【发布时间】:2013-04-11 19:34:48 【问题描述】:当我们将 Xms 和 Xmx 的值设置为相等时,对 FullGC 或 HotSpot 中年轻/终身代的分配有什么影响。
在 JRockit 中有什么不同吗?
【问题讨论】:
【参考方案1】:将这两个参数设置为相同的值是最佳做法。它将阻止 JVM 调整堆的大小。主要影响是堆的所有其他部分,尤其是世代,不会因堆大小调整而改变。这允许更好地理解和配置堆。它还消除了由调整堆大小引起的暂停。 唯一不会这样做的情况是客户端 java 应用程序,它与许多其他应用程序竞争可用内存。在当今的用例中,您通常可以为 java 分配固定的内存块(例如在所有服务器应用程序中)
【讨论】:
但问题是对 FullGC 的影响是什么?当我们在 jRockit 中设置它时,它有什么不同以上是关于当我们设置 Xmx 和 Xms 大小相等时会发生啥的主要内容,如果未能解决你的问题,请参考以下文章
JVM故障问题排查心得「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?