通过nfs共享的mmap文件?

And*_*zos 6 linux memory-management nfs mmap shared-memory

情景A:

要在同一主机上运行的两个进程之间共享读/写内存块,Joe会从两个进程中映射相同的本地文件.

情景B:

为了在两个不同主机上运行的两个进程之间共享读/写内存块,Joe在主机之间通过nfs共享文件,然后从两个进程mmaps共享文件.

有人试过Scenario B吗?场景B中出现的哪些额外问题不适用于场景A?

osg*_*sgx 5

没有一些额外的操作,Mmap将不会共享数据.

如果更改文件的mmaped部分中的数据,则更改将仅存储在内存中.它们不会被刷新到文件系统(本地或远程),直到msync或者映射或关闭甚至决定OS内核及其FS.

使用NFS时,与使用本地FS相比,锁定和存储数据会更慢.刷新超时和文件操作时间也会有所不同.

在姐妹网站上,人们说NFS可能具有较差的缓存策略,因此对于NFS服务器将有更多的I/O请求将I/O请求计数与本地FS进行比较.


kof*_*ann 5

您将需要字节范围锁定才能获得正确的行为。它们在 NFS >= v4.0 中可用。