Как использовать флаг MAP_NORESERVE в mmap? - PullRequest
2 голосов
/ 25 февраля 2020

Не резервируйте место подкачки для этого сопоставления. Когда пространство подкачки зарезервировано, у вас есть гарантия, что можно изменить отображение. Когда пространство подкачки не зарезервировано, можно получить SIGSEGV при записи, если физическая память недоступна. Смотрите также обсуждение файла / proc / sys / vm / overcommit_memory в pro c (5). В ядрах до 2.6 этот флаг действовал только для частных отображаемых отображений.

Я думал, что пространство подкачки совместно используется всеми процессами в хосте. После просмотра этого флага я хотел бы знать:

  • Зарезервировано ли пространство подкачки для каждого процесса? Если да,
    • как рассчитывается резервное пространство подкачки для процесса?
    • что произойдет, если процесс превысит это резервное пространство? Будет ли один этот процесс убит или он вызовет OOM killer (убивает случайный процесс).
  • Этот параметр работает только с /proc/sys/vm/overcommit_memory -> 0?
  • Что такое лучший вариант использования этого флага?
...