linux - 是否可以延迟 Linux OOM Killer 并运行我的进程?

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

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

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

所以我禁用了交换ksm没有运行,最后一件事是OOM killer 正在杀死其他程序。

我已经阅读并搜索了禁用 OOM Killer,我发现禁用它是个坏主意。

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

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

最佳答案

oom_adj 的可能值范围为 -17 到 +15。分数越高,相关进程就越有可能被 OOM-killer 杀死。如果 oom_adj 设置为 -17,则不考虑对该进程进行 OOM 终止。

更多引用link 1 , link 2

关于linux - 是否可以延迟 Linux OOM Killer 并运行我的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717991/

相关文章:

javascript - 在 Dojo 类中递归调用 setTimeout 时是否存在内存泄漏?

c - 如果数组大小只能是一个常量值,那么 char d_name[...] 是什么意思?

android - ADB 看不到设备

python - 如何使用python获取arduino端口

C++。二维 vector 变得太大

java - Android:对 findViewById 的引用

c++ - 类指针成员和异常处理

android 低内存 :no more background process ? ?需要帮忙

iphone - 内存管理addSubview :

Linux Bash 脚本 : Declare var name from user or file input