Я администрирую несколько серверов Linux, на которых запущено приложение на основе httpd, разработанное одной из наших команд разработчиков. Это в EC2, и каждый хост имеет 32 ГБ ОЗУ. Я заметил, что примерно раз в день на каждом из этих хостов происходит событие OOM, и httpd в конечном итоге оказывается убитым. Я также заметил, что httpd заблокировал 23 ГБ своей памяти, и все это в файловом кеше. Мой вопрос заключается в том, существуют ли какие-либо обстоятельства, при которых для процесса было бы хорошей идеей заблокировать все свои файлы, размещенные в mmap. Не могу понять, почему это хорошая идея. Я предполагаю, что разработчики делают это для того, чтобы их активно записываемые файлы оставались в памяти, но сам Linux не должен удалять их в любом случае, если он не перейдет к сети. Блокируя все, httpd становится первым, кого убивает oom-killer. Я рассказал об этом разработчикам, и они ответили: «Все нормально, перезапускается автоматически». .... Но если httpd продолжает убиваться (тем самым вытесняя все и заставляя систему, вероятно, возвращаться к страницам в некоторых своих файлах), разве это не сводит на нет цель mlock?