Когда ОС решает освободить страницы отображенного в памяти файла перед тем, как кончится память? - PullRequest
2 голосов
/ 22 апреля 2020

Я работаю над программой, работающей на Linux, которая использует mmap для сопоставления нескольких файлов с памятью.

Каждый из файлов читается (обход памяти с указателями).

Вы ясно видите в pmap, как некоторые файлы были полностью отображены в память (при полном прочтении), а другие нет:

Address           Kbytes     RSS   Dirty Mode  Mapping
00007f8b09c3a000   26688   26664       0 rw-s- /mnt/ebs-metadata/fullyread.dat
00007f89ecc0c000   15936    4704       0 rw-s- /mnt/ebs-metadata/partiallyread.dat

Мы продолжаем отображать файлы и в определенный момент времени получаем ошибку говоря, что больше памяти не может быть выделено.

(Да, мы можем выгрузить много файлов, и мы это сделаем).

Мой вопрос: почему ОС не выгружает многие из страниц (или даже полных файлов) из физической памяти до следующего использования вместо броска «невозможно выделить память»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...