Memory management 在linux内核版本5.x.x中,什么时候调用OOM来终止某些进程?

Memory management 在linux内核版本5.x.x中,什么时候调用OOM来终止某些进程?,memory-management,linux-kernel,out-of-memory,Memory Management,Linux Kernel,Out Of Memory,即使有足够的可用交换空间,Linux内核OOM杀手是否可能杀死进程? 第13.2节中的这一点表明,如果存在可用的交换空间,则OOM killer不会终止进程 现在,我对Linux内核进行了更改,并完全停止了匿名页面的交换,因此,始终有可用的可用交换空间。但是,我仍然观察到OOM杀死过程 但是,此文档可能已过时。有人能提供一些见解,了解在OOM真正杀死最新Linux内核(v-5.x.x)中的进程之前执行了哪些检查吗?检查您的/proc/sys/vm/min\u free\u kbytes变量。根据

即使有足够的可用交换空间,Linux内核OOM杀手是否可能杀死进程? 第13.2节中的这一点表明,如果存在可用的交换空间,则OOM killer不会终止进程

现在,我对Linux内核进行了更改,并完全停止了匿名页面的交换,因此,始终有可用的可用交换空间。但是,我仍然观察到OOM杀死过程


但是,此文档可能已过时。有人能提供一些见解,了解在OOM真正杀死最新Linux内核(v-5.x.x)中的进程之前执行了哪些检查吗?

检查您的
/proc/sys/vm/min\u free\u kbytes
变量。根据我的经验,任何时候您的可用内存低于该变量时,无论交换空间如何,都会调用OOM killer。@wxz,AFAIK,根据我观察到的情况,如果有足够的交换空间,OOM将不会被调用。但是我想知道Linux内核中目前使用的关于调用OOM的确切策略是什么。当alloc_页面失败时,会调用out_of_内存。未选中交换。