【问题标题】:is it possible to Delay Linux OOM Killer and run my process?是否可以延迟 Linux OOM Killer 并运行我的进程?
【发布时间】:2017-07-31 18:36:02
【问题描述】:

目前正在尝试使用 QEMU/KVM 在虚拟化环境中为虚拟机创建高效的动态内存分配。

我的最后一个问题是当来宾虚拟机几乎耗尽内存时,它会使用 OOM Killer 并阻止任何没有足够内存的工作。但我正在做的是,当机器几乎耗尽内存时,我的算法将从其他来宾虚拟机中获取一些空闲内存并将其分配给需要它的机器。

所以我禁用了 swapksm 没有运行,最后是 OOM 杀手 正在杀死其他程序。

我已阅读并搜索禁用 OOM 杀手,但我发现禁用它是个坏主意。

所以现在问这里有没有办法我可以将 OOM Killer 延迟 1 或 2 秒并让进程运行,因为我的算法已经为机器分配内存。

或者即使没有内存,进程也可以运行并分配内存,因此我的算法将为该机器分配内存。

【问题讨论】:

标签: linux memory memory-management out-of-memory real-time


【解决方案1】:

oom_adj 的可能值范围是 -17 到 +15。分数越高,关联进程就越有可能被 OOM-killer 杀死。如果 oom_adj 设置为 -17,则该进程不会被 OOM 杀死。

更多参考link 1link 2

【讨论】:

    【解决方案2】:

    echo -1000 > /proc/yourPID/oom_score_adj
    这会让 oom Killer 跳过你的进程。

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 1970-01-01
      • 2015-07-12
      • 2016-11-05
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 2016-08-07
      • 2014-02-13
      相关资源
      最近更新 更多