【问题标题】:can a java service bring down the hosting Unix box?java 服务可以关闭托管的 Unix 机器吗?
【发布时间】: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


【解决方案1】:

您可以查看日志档案以查看内存不足杀手是否在内存不足时杀死了您或其他进程(我的日志恰好在 /var/log/all.log 中,您的可能在某个地方否则和/或您应该查看发生这种情况的当天的日志——编辑,在 RedHat 上,这应该在 /var/log/messages,但我不知道默认情况下它们是如何旋转的):

# grep -i -e "Killed process" -e "out of memory" /var/log/all.log
1406786406 1406786406 0 3 127.0.0.1 2014-07-31T01:00:06-05:00 ahostname kern err kernel[76729.082621]: [76729.082621] 
    Out of memory: Kill process 22407 (java) score 187 or sacrifice child
1406786406 1406786406 0 3 127.0.0.1 2014-07-31T01:00:06-05:00 ahostname kern err kernel[76729.082625]: [76729.082625]
    Killed process 22407 (java) total-vm:859680kB, anon-rss:304232kB, file-rss:608kB
1406811608 1406811608 0 3 127.0.0.1 2014-07-31T08:00:08-05:00 ahostname kern err kernel[101910.841683]: [101910.841683] 
    Out of memory: Kill process 1370 (java) score 198 or sacrifice child
1406811608 1406811608 0 3 127.0.0.1 2014-07-31T08:00:08-05:00 ahostname kern err kernel[101910.841686]: [101910.841686] 
    Killed process 1370 (java) total-vm:859928kB, anon-rss:332688kB, file-rss:560kB

要更好地了解 Linux 系统内存不足时会发生什么,请参阅documentation。或者只搜索“内存不足杀手”。

发生的情况是,当操作系统检测到内存不足时,它会开始终止进程​​。有时这可能最终成为sshd 进程或其他用于登录系统的关键进程。

您的 Java 进程本身可能不会导致中断,但它可能与在同一台服务器上运行的其他东西结合起来导致问题。但是在日志中查找 OOM Killer 是一个不错的起点。

也可以使用top 查看正在运行的其他进程正在使用系统上的剩余内存。要按内存使用情况排序(首先是最高内存),请在运行top 后键入M。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2012-04-30
    • 2011-03-08
    • 2018-07-06
    相关资源
    最近更新 更多