2

我们正在监控 tomcat 服务器,我发现每当 Committed Heap memory 达到 Max heap memory 我的 tomcat 崩溃或 OOM 错误,但同时 Heap Used 内存使用正常。有人可以解释使用了什么提交以及为什么在使用堆时它崩溃是正常的。

请参阅下图,以便您了解一些情况。

在此处输入图像描述

4

1 回答 1

9

承诺空间是非虚拟空间。即静态分配给JVM的给定分区的空间。当您使用可选的大小调整开关 -Xms 和 -Xmx 时,并非所有内容最初都提交到特定的内存分区。由于世代需要扩展,他们被允许成长为“虚拟”空间。

您的图表看起来应该是如何工作的。随着您使用的空间向您的承诺增长,承诺空间向最大扩展。当提交达到它的最大大小时,它无处可去。如果它不能通过最后一次 GC 来拯救自己,那么你的 JVM 就会崩溃。

于 2012-04-27T21:05:33.587 回答