我在 Windows 64 位上运行 Apache 2.2.4,使用本地 NTFS 文件系统。我启用了Mmap 选项并注意到 Apache 似乎获取了写入锁定并长时间持有它。在我的示例中,它正在为 2MB 的 XML 文件提供服务。
不幸的是,我需要另一个进程才能定期更新此 XML 文件,但锁定将使这变得不可能。一旦我禁用 MMap,写入 XML 文件就可以正常工作。
您能否为我指明正确的方向,让我了解有关 MMap 的更多信息以及它为什么获取锁以及如何启用它以允许第二个进程更新文件?
答案1
MMap 将文件映射到内存中。在 Windows 上,您无法修改映射到内存中的文件。如果您需要修改文件,但无法重新启动服务器,则无法使用 MMap。
请注意,MMap 的文档指出,即使你能修改文件(例如,在 Unix 上),每当文件更改时,您需要重新启动服务器。