我发现有时我的 Linux 机器内存不足,它开始拆除随机进程来处理它。
我很好奇管理员如何避免这种情况?是增加内存量的唯一真正解决方案(单独增加交换会有所帮助吗?),还是有更好的方法来设置带有软件的盒子来避免这种情况?(即配额,或一些这样的?)。
vor*_*aq7 56
默认情况下,Linux 的内存管理概念有些脑残:它允许您分配比系统更多的内存,然后在遇到麻烦时随机终止进程。(被杀死的实际语义比这更复杂——谷歌“Linux OOM Killer”有很多细节和关于它是好事还是坏事的争论)。
为您的内存管理恢复一些理智:
vm.oom-kill = 0/etc/sysctl.conf)vm.overcommit_memory = 2/etc/sysctl.conf)这些设置将使 Linux 以传统方式运行(如果进程请求的内存多于可用的内存, malloc() 将失败,并且请求内存的进程预计会处理该故障)。
重新启动您的机器以使其重新加载/etc/sysctl.conf,或使用proc文件系统立即启用,无需重新启动:
echo 2 > /proc/sys/vm/overcommit_memory
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40130 次 |
| 最近记录: |