У меня есть сервер LINUX, который запускает процесс с большим объемом памяти (какой-то механизм базы данных). Память, выделяемая этим процессом, настолько велика, что часть ее должна быть заменена (выгружена).
Что я хотел бы сделать, так это заблокировать страницы памяти всех других процессов (или подмножества запущенных процессов) в памяти, так что только страницы процесса базы данных будут заменены. Например, я хотел бы убедиться, что я могу продолжать удаленно подключаться и отслеживать работу компьютера, не подвергая процессы, подверженные обмену. То есть Я хочу, чтобы sshd, X, top, vmstat и т.д. Имели всю память страниц.
В linux есть системные вызовы mlock(), mlockall(), которые, похоже, предлагают правильную ручку для фиксации. К сожалению, мне кажется, что мне нужно сделать явный вызов внутри каждого процесса и не может вызывать mlock() из другого процесса или из родителя (mlock() не наследуется после fork() или evecve()).
Любая помощь приветствуется. Виртуальная пицца и пиво предлагаются: -).