在 Ubuntu Linux 3.2.0-25-virtual 上使用 Oracle Java 1.7.0_05,在具有 7.5 GB 内存的亚马逊 EC2 实例上,我们启动三个 java 实例,每个实例都使用开关 -Xmx 2000m。
我们使用没有交换空间的默认 Ubuntu EC2 AMI 配置。
在运行这些实例数周后,其中一个会死机——可能内存不足。但我的问题不是要找到我们的内存泄漏。
当我们尝试重新启动应用程序时,java 给我们一条消息,它无法分配 2000 mb 的内存。我们通过重启服务器解决了这个问题。
换句话说,2000 + 2000 + 2000 > 7500?
我们已经两次看到此问题,很抱歉报告我们没有良好的诊断。只有两个剩余的 java 进程,每个进程最多使用 2000 mb,我们怎么会用完空间?下次发生此问题时,我们应该如何进行诊断?我希望我有一个“free -h”输出,当我们无法启动程序时,在这里显示。
TIA。