避免linux内存不足的应用程序拆解

Modified on: Tue, 12 Nov 2019 04:40:02 +0800

我发现有时我的Linux机器内存耗尽,它开始拆除随机进程来处理它。

我很好奇管理员做了什么来避免这种情况?是唯一能够提高内存量的真正解决方案(单独使用交换是否有帮助?),还是有更好的方法来设置软件盒以避免这种情况? (即配额,还是一些?)。

最佳答案

默认情况下,Linux有一个有点脑损坏的内存管理概念:它可以让你分配比系统更多的内存,然后在遇到麻烦时随机拍摄一个进程。 (被杀的东西的实际语义比这更复杂 - 谷歌“Linux OOM Killer”提供了很多关于它是好还是坏的细节和争论。)


为你的记忆管理恢复一些理智:

  1. 禁用OOM Killer(在/etc/sysctl.conf中输入vm.oom-kill = 0
  2. 禁用内存过量使用(在/etc/sysctl.conf中输入vm.overcommit_memory = 2
    注意这是一个三元值:0 =“估计我们是否有足够的RAM” ,1 =“总是说是”,2 =“如果我们没有记忆就说不”,
  3. 醇>

    这些设置将使Linux以传统方式运行(如果进程请求的内存多于可用的内存,则malloc()将失败,并且请求内存的进程应该处理该故障)。

    重新启动计算机,使其重新加载/etc/sysctl.conf,或使用proc文件系统立即启用,无需重启:

    echo 2 > /proc/sys/vm/overcommit_memory 
    

相关问答

添加新评论