Почему OOM killer не сможет освободить память от tmpfs - PullRequest
0 голосов
/ 27 марта 2019

В этом документе я вижу следующее утверждение:

Если вы увеличите размер своих экземпляров tmpfs, машина будет заблокирована обработчик OOM не сможет освободить эту память.

Однако, похоже, это не то, что я нашел на своей машине с Linux Я перемонтировал /dev/shm в моей машине с очень большим размером (намного большим, чем общая физическая память машины), например: sudo mount -o remount,size=512G /dev/shm, а затем связал его с /tmp (sudo mount --bind /dev/shm /tmp) и запустил dd чтобы записать большие файлы в /tmp, я обнаружил, что процесс dd может быть убит OOM killer:

$ dmesg
...
[ 1184.989896] Out of memory: Kill process 3101 (dd) score 204 or sacrifice child
[ 1184.989957] Killed process 3101 (dd) total-vm:2104672kB, anon-rss:2097192kB, file-rss:1456kB, shmem-rss:0kB
[ 1185.067934] oom_reaper: reaped process 3101 (dd), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

Таким образом, OOM killer может успешно завершить процесс, который использует общую память.

...