如何在 Linux 上通过 NFS 加速和缓存 mmap 文件访问?

Zan*_*ynx 5 linux nfs cache

服务器和客户端都是64位Ubuntu 10.04 LTS。

相关应用程序是一个用于mmap()快速随机文件访问的自定义应用程序。其理想状态是整个文件缓存在 RAM 中。

网络连接是非常快的 10Gb 以太网。它是虚拟服务器刀片设置。

网络连接不会减慢速度,因为使用虚拟磁盘(iSCSI 到 SAN)时一切都表现出色。但是,当我们在 NFS 主目录挂载上运行应用程序时,性能就会下降。

Linux 内核似乎没有缓存任何内容mmap()因此,它会一遍又一遍地读取访问所需的每个磁盘块。

NFS挂载是通过autofs完成的,它只有默认设置。/proc/mounts显示 NFS 安装已通过以下选项完成:

rw,relatime,vers = 3,rsize = 131072,wsize = 131072,namlen = 255,硬,proto = tcp,timeo = 600,retrans = 2,sec = sys,mountaddr = 192.168.11.52,mountvers = 3,mountproto = tcp,地址=192.168.11.52

如何让 Ubuntu 10.04 缓存该文件而不是一直重新加载它?

eww*_*ite 3

您是否调整过 NFS 导出或安装?您目前的安装选项有哪些?您在 NFS 服务器上使用哪种文件系统?

我知道您使用的是 Ubuntu,但是Red Hat 的这份 NFS 调优指南可能是一个好的开始,特别是如果您有良好的性能指标来测试不同的设置。文档中的一些提示涵盖通过 NFS 访问文件时限制元数据更改以及扩展属性缓存。

在这种情况下, NFS 缓存(FS-Cache、CacheFS)是一个选项吗?