这两个事实加上我们服务中流量的突然增加,导致应用程序请求越来越多的内存来支持这些额外的用户。 过量使用配置允许为这个贪婪的过程分配越来越多的内存,最终触发了“内存不足杀手”,他正在按照自己的意图去做。 在半夜杀死我们的应用程序并将我叫醒。

例

当我向工程师描述这种行为时,其中一名工程师很感兴趣,可以创建一个小的测试用例来重现错误。 在Linux上编译并启动以下Java代码段时(我使用了最新的稳定Ubuntu版本):
package eu.plumbr.demo; public class OOM { public static void main(String[] args){ java.util.List l = new java.util.ArrayList(); for (int i = 10000; i