我目前正在研究一个使用大型 mmap 文件在进程之间共享数据的 Apache 模块。这是在启动时创建并在服务器关闭时删除(可以选择在稍后阶段保留它)。我已经使用 Apache APR 库实现了这一点,它运行良好,至少对于较小的文件。
然而,当内存映射文件的大小增加时(当服务器运行时仍有足够的 RAM 来缓存它),系统有时实际上会停止运行,因为看起来操作系统(在我的例子中是 Linux)消耗了很多将文件与磁盘同步的资源。有没有办法控制/减少这种同步?
由于我目前不需要将内容同步到磁盘,因此我可能应该使用共享内存段,并且会尝试使用它。然而,我仍然对控制内存映射文件同步的方法感兴趣。