场景A:
为了在同一主机上运行的两个进程之间共享读/写内存块,Joe 从两个进程映射同一个本地文件。
场景B:
为了在两个不同主机上运行的两个进程之间共享读/写内存块,Joe 在主机之间通过 nfs 共享一个文件,然后从两个进程映射共享文件。
有人尝试过场景B吗?场景 B 中出现的额外问题有哪些不适用于场景 A?
如果没有一些额外的操作,Mmap 不会共享数据。
如果您更改文件的映射部分中的数据,则更改将仅存储在内存中。它们不会被刷新到文件系统(本地或远程),直到msync http://pubs.opengroup.org/onlinepubs/7908799/xsh/msync.html或munmap或关闭甚至操作系统内核及其FS的决定。
使用 NFS 时,锁定和存储数据将比使用本地 FS 慢。刷新超时和文件操作时间也会有所不同。
在姐妹网站上 https://serverfault.com/questions/340296/how-do-i-speed-up-and-cache-mmap-file-access-over-nfs-on-linux人们说 NFS 的缓存策略可能很差,因此与本地 FS 相比,NFS 服务器的 I/O 请求数会多得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)