即使有足够的可用内存,Linux进程也会死亡
我正在调查为什么我们的两个进程被Linux OOM杀手杀死 – 即使似乎已经有足够的RAM和大量的SWAP可用。 当我通过这个答案解释它时,第一个内存请求要求2 ^ 2 = 4页(16KB)的内存(顺序标志),并且希望它来自“Normal”区域。 Jan 27 04:26:14 kernel: [639964.652706] java invoked oom-killer: gfp_mask=0x26000c0, order=2, oom_score_adj=0 如果我正确地parsing输出,则有足够的空间: Node 0 Normal free:178144kB min:55068kB low:68832kB high:82600kB 几分钟后第二次有同样的要求 – 而且似乎也有足够的空间。 为什么OOM杀手触发呢? 我parsing的信息错了吗? 该系统是具有4.4.0-59 x64内核的14.04 Ubuntu vm.overcommit_memory设置被设置为“0”( 启发式 ),这可能不是最佳的。 实例一: Jan 27 04:26:14 kernel: [639964.652706] java invoked oom-killer: gfp_mask=0x26000c0, order=2, oom_score_adj=0 Jan 27 04:26:14 kernel: […]