我有一个小型局域网,里面有几个 Linux 盒子(Ubuntu 9.10),上面有 NFS 共享。这些盒子与消费级 Netgear 路由器(型号 WGR614V9)联网,使用有线连接。
我第一次设置 NFS 共享时,发现性能非常糟糕。例如,将 40 MB 的数据从已挂载的 NFS 共享复制到本地磁盘需要几分钟的时间。
通过尝试 NFS 配置,我能够让一切运行得相当好。我为导出共享的系统确定的配置是:
# /etc/exports On the machine exporting the NFS share:
/exprt/dir client.ip (rw,async,no_root_squash,no_subtree_check)
对于 NFS 客户端,我有
# /etc/fstab
server.ip:/exprt/dir on /imprt/dir type nfs (rw,noatime,rsize=32768,wsize=32768,timeo=14,intr)
然而,虽然这对我来说似乎效果很好,但使用 NFS 将文件从一个系统复制到另一个系统似乎仍然比scp
使用 NFS 更快。
我认为有必要询问其他人在类似的网络设置中使用哪些 NFS 配置以获得相当好的性能。我知道 NFS 对诸如操作系统选择和精确的网络配置等因素非常敏感。但是,我怀疑我的设置对于拥有小型本地网络的其他用户来说非常常见,因此了解哪种配置最适合他们会很有用。
答案1
NFS 应该轻松胜过 SSHFS。您能展示一些具体数字吗?
如果您在您的服务器上运行..
dd if=/dev/zero of=test.a bs=1M count=100
dd if=/dev/zero of=test.b bs=1M count=100
那么你可以做
dd if=/imprt/dir/test.a of=/dev/null
dd if=/path/to/sshfs/mount/dir/test.b of=/dev/null
并发布输出?
另外,您可能希望导出 /export 下的共享,并在客户端上使用带有 auto.net 的 autofs。这使得局域网上的所有机器使用相同的 /net/$hostname/export/foo 路径结构。