【发布时间】:2015-01-09 16:11:25
【问题描述】:
我在 Redhat Unix 机器上检查我的 Java 服务,但发现机器的 SSH 不起作用,SA 解释说机器内存不足并开始消耗交换空间,最终导致机器挂起并关闭。
他暗示我的 java 服务关闭了服务器,我很难相信这怎么可能 - 因为我认为在最坏的情况下,服务将抛出 OutOfMemory 异常并且只会崩溃自己。
我的 java 内存设置是:“-Xms1g -Xmx5g”,从 /proc/meminfo 中显示该框有
MemTotal: 16304084 kB
MemFree: 12288796 kB
第二个问题是,我们是否可以查看 /var/log 下的一些日志以找出真正的问题是什么?
【问题讨论】:
-
@Greycon "你说得对,即使 JVM 内存耗尽,它也不会消耗掉所有的主机操作系统内存"
-
要考虑的一件事:将 -Xms1g -Xmx5g 设置为 -Xms5g -Xmx5g 或任何合适的值。这有助于通过在启动时分配所有内存来防止堆碎片。更多信息:stackoverflow.com/questions/1253388/…
标签: java unix out-of-memory redhat