OOM_KILLER 何时被调用

OOM_KILLER 何时被调用

我目前遇到的情况是 OOM_KILLER 被调用,而(我认为)有一些 RAM 未使用。我知道当“系统中没有更多内存”时会发生这种情况,但是它的定义是什么?这与交换有何关系?

当我达到约 64GB 虚拟内存(巧合)时,它似乎就发生了,这与系统上安装的 RAM 数量相同。我最终遇到这样的情况:

[Fri Jan 11 02:11:48 2019] Killed process 28863 (java) total-vm:65134452kB, anon-rss:18437996kB, file-rss:0kB, shmem-rss:0kB

如果 anon-rss 是实际使用的 RAM - 那么还有超过 40GB 的剩余空间可供使用,但仍然会触发 OOMK。这是为什么? 64GB 是某种魔法屏障吗?或者是因为 vmem 超出了物理内存大小?

相关内容