В настоящее время я работаю над модулем Apache, который использует большой файл mmap для обмена данными между процессами. Он создается при запуске и удаляется при выключении сервера (возможно, он будет сохранен на более позднем этапе). Я реализовал это, используя библиотеки Apache APR, и это хорошо работает, по крайней мере, для небольших файлов.
Когда размер отображаемого в память файла, тем не менее, увеличивается (по-прежнему достаточно оперативной памяти для его кэширования при работе сервера), иногда система практически останавливается, как кажется, операционная система (в моем случае Linux) потребляет много ресурсов, синхронизирующих файл с диском. Есть ли способ контролировать / уменьшить эту синхронизацию?
Поскольку в данный момент мне не нужно синхронизировать содержимое с диском, я, вероятно, вместо этого должен был использовать сегмент совместно используемой памяти, и вместо этого попробую. Однако я по-прежнему заинтересован в способах управления синхронизацией файлов, отображаемых в память.