小编Leo*_*Leo的帖子

linux OOM-kill 为什么?

. 问候,各位管理员。我发帖是希望阐明困扰我公司一台机器的 OOM 致死问题。我无法决定它们是否是合法的 OOM。

这是一个 Centos 6.x,内核为 2.6.32-279.1.1.el6.x86_64。

内存 8 GB,CPU athlon2-x4。

大进程是 mysql 和 vmware player 4,最大分别为 2 GB 和 4 GB 的 ram 不断分配加上一些开销。(Vmware 被杀死了,因为它的体积更大。)

除了这两个之外还有守护进程在运行,但它们非常小,而且负载很轻,所以我不明白剩下的 1/1.5 gig ram 会在哪里消失,不算巨大的交换......

此外,只有在夜间运行备份 cronjobs 时才会发生杀戮。(这些是带有标准工具的简单 shell 脚本,可以转储一些数据库并压缩一些 Web 和邮箱目录。)

例如,在这里,它正在执行 mysqldump —— 这是第一次发生在这个特定任务上。当我运行大目录树(约 100 万个小文件)的 rsyncs 或 zip 文件时,几乎每次都会发生这种情况,还伴随着“页面分配失败”。但是我用 zfs 将所有这些都移到了另一台机器上:在这次操作之后,凶手让我一个人呆了一段时间..

我讨厌在处理这个问题几个月后,阅读并重新阅读互联网上的每个线程后,我仍然无法将这些信息与我的案例联系起来。有交换,为什么不交换而不是杀死?谁拿走了所有的公羊?(一开始有几个合法的内存泄漏者,我得到了它们。)也不能碎片化,因为失败的请求是零阶的..

我在实际杀死日志之前粘贴了一些数据:

vm.swappiness = 100
vm.vfs_cache_pressure = 5000
vm.min_free_kbytes = 262144

(我添加了这些来尝试修复它,它们可能有点极端,但无论如何它运行顺利)

我也尝试过 overcommit_memory=2,但徒劳无功。这不是应该禁用杀手吗?

这是系统的正常内存状态。请注意,由于使用了 mmap 的 vmem,vmware 的 ram 算作缓存。顺便说一下,vmware 设置为允许回收/交换 vm 内存。它永远不会这样做。 …

linux virtual-machines centos6 oom-killer

7
推荐指数
1
解决办法
2884
查看次数

标签 统计

centos6 ×1

linux ×1

oom-killer ×1

virtual-machines ×1