В настоящее время я работаю над модулем Apache, который использует большой файл mmap для обмена данными между процессами. Это создается при запуске и удаляется, когда сервер выключается (возможно, он захочет сохранить его на более позднем этапе). Я реализовал это с использованием Apache APR-библиотек, и он работает хорошо, по крайней мере, для небольших файлов.Чрезмерная синхронизация файла с отображением памяти в модуле Apache
При увеличении размера файла с отображением памяти (все еще достаточно ОЗУ для кэширования при запуске сервера) система порой практически останавливается, как кажется операционной системе (Linux в моем случае) потребляет много ресурсов, синхронизируя файл с диском. Есть ли способ контролировать/уменьшать эту синхронизацию?
Поскольку на данный момент мне не нужно содержимое, синхронизированное с диском, я, скорее всего, должен был использовать сегмент разделяемой памяти, и попробуем это вместо этого. Тем не менее, я все еще заинтересован в способах управления синхронизацией файлов с отображением памяти.
Библиотека APR управляет только созданием файла с отображением памяти и не содержит вызовов msync(). Я также не вызываю msync() в моем коде. Тем не менее, мой код немного перескакивает в памяти, так как файл содержит кэшированные данные. – Chris 2010-12-08 15:30:11