如何实现 NFS 导出的低延迟,以便开发人员能够在通过 NFS 挂载其工作区的情况下在 Eclipse/Visual Studio 中顺利工作?
答案1
这听起来好像您仍处于设计阶段。如果是这样,请考虑以下几点:
- NFSv3/4 基于 NFSv2,允许更大的数据包,并具有“安全异步写入”等功能
- 检查你的 NFS 客户端是否具有预读和延迟写入功能,这两个功能都会有所帮助
- 显然要保持较低的网络延迟 - 通过快速交换机建立 GBit 连接
- 确保您的 NFS 服务器已针对速度进行了调整。这既包括 NFS 实现,也包括其配置方式。
那边有一份很好的 NFS FAQ,其中包括一些调整技巧:http://nfs.sourceforge.net/
答案2
不要通过 NFS 进行编译。NFS 性能通常是磁盘 I/O 性能的一个因素,而编译才是决定文件 I/O 操作数量的因素。
如果无法避免这种情况,那么缓存将拯救一切。尽可能地将 NFS 服务器塞满 RAM,使用异步写入并启用客户端的所有缓存。事实上,RAID 在处理(非缓存)磁盘操作方面并不比单个硬盘更好。而且,由于编译工作负载的文件大小较小,因此合并吞吐量不会改变任何事情。
答案3
等待文件系统缓存,或者不要通过 NFS 进行编译。硬盘总是比网络文件系统更快。
答案4
将文件放在非常快的磁盘或专为速度而构建的 RAID 阵列上,因为磁盘 IO 将决定延迟的下限,无论客户端是本地还是远程。其他答案也不错。
一个好的解决方案是让文件服务器成为建造服务器也是。