我正在调查为什么我们的两个进程被 Linux OOM 杀手杀死 - 尽管似乎有足够的 RAM 和大量可用的 SWAP。
当我通过这个答案解释它时,第一个内存请求要求 2^2=4 页(16KB)的内存(顺序标志)并希望它来自“正常”区域。
Jan 27 04:26:14 kernel: [639964.652706] java invoked oom-killer: gfp_mask=0x26000c0, order=2, oom_score_adj=0
Run Code Online (Sandbox Code Playgroud)
如果我正确解析输出,就会有足够的空间:
Node 0 Normal free:178144kB min:55068kB low:68832kB high:82600kB
Run Code Online (Sandbox Code Playgroud)
几分钟后第二次有同样的请求——而且似乎也有足够的可用空间。
为什么当时触发了OOM杀手?我解析的信息有误吗?
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: [639964.652711] java cpuset=/ mems_allowed=0
Jan 27 04:26:14 kernel: [639964.652716] CPU: 5 PID: 2152 Comm: java Not tainted 4.4.0-59-generic …Run Code Online (Sandbox Code Playgroud) 我有一个运行名为 ABC 的应用程序的多用户 CentOS 6.1 数据库系统。服务器为 64 位、8GB RAM 和 6 个 vCPU(在 VMWare ESXi 4 上)。我们经常转储到 dmesg 和系统日志中,详细说明内核页面分配失败。
在这种情况下,这些消息意味着什么?我们该如何补救?
Feb 5 08:10:52 Fruity kernel: ABC: page allocation failure. order:1, mode:0x20
Feb 5 08:10:52 Fruity kernel: Pid: 23588, comm: ABC Not tainted 2.6.32-131.17.1.el6.x86_64 #1
Feb 5 08:10:52 Fruity kernel: Call Trace:
Feb 5 08:10:52 Fruity kernel: <IRQ> [<ffffffff8112016e>] ? __alloc_pages_nodemask+0x71e/0x8b0
Feb 5 08:10:52 Fruity kernel: [<ffffffff81159a52>] ? kmem_getpages+0x62/0x170
Feb 5 08:10:52 Fruity kernel: [<ffffffff8115a66a>] ? fallback_alloc+0x1ba/0x270
Feb 5 08:10:52 Fruity …Run Code Online (Sandbox Code Playgroud) 我有一个带有 4GB 内存、2GB 交换和 2 个 CPU 的 Debian 系统。我遇到了许多涉及 oom-killer 的系统故障。系统将在一分钟内正常工作,下一分钟将无法操作,控制台上会显示大量 oom-killer 消息。我已经两次添加了 1GB 的 RAM。 5
令我感到困惑的是,我使用 xymon 监控系统,并且没有提前收到任何警告。我有 CPU、网络和 ram 利用率的图表,但我没有看到其中任何一个表明存在问题的大“尖峰”。我会发布它们,但目前没有足够的声誉。
我发现了6。我也通过vmcom和vmlim得到一条红线。我/proc/sys/vm/overcommit_ratio从50改为90,红线消失了。如您所见,我有 500MB 可用内存、2GB 可用交换空间、1.2G 缓存。
我解决了问题,还是告诉 atop/linux 忽略它?
我想要一个稳定的系统。展望未来,我应该:
我正在寻找更好的方法来计算上述问题的答案。
谢谢。
ATOP输出
ATOP - www1 2013/06/20 10:32:14 10 seconds elapsed
PRC | sys 1.34s | user 7.48s | #proc 347 | #zombie 2 | #exit 53 |
CPU | sys 11% …Run Code Online (Sandbox Code Playgroud)