Если вы обнаружите, что ваш процесс с файлами, отображаемыми в память, удерживает многие из этих страниц, это означает, что ОС не нужно отбрасывать какие-либо из областей, отображенных в вашей памяти, для передачи другим процессам. Итак, как вы узнаете, что другим процессам на самом деле нужна память, используемая в настоящее время для сопоставленных файлов? То, что в операционной системе недостаточно физической памяти, ничего не значит. Другие процессы должны требовать памяти, чтобы ОС отбрасывала ваши отображенные страницы и выделяла им ОЗУ.
Итак, похоже, что ваш процесс mmap-I / O истощает ваш другой процесс, который использует ОЗУ реже. Один подход заключается в разумной блокировке памяти в процессе, который подвергается голоданию. Посмотрите на VirtualLock для win32.