我有一个小型局域网,上面有几个带有 NFS 共享的 Linux 机器(Ubuntu 9.10)。这些盒子与消费级 Netgear 路由器(型号 WGR614V9)联网并使用有线连接。
当我第一次设置 NFS 共享时,我注意到性能非常糟糕。例如,将 40 mbs 的数据从已挂载的 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)
scp
然而,虽然这对我来说似乎工作得相当好,但使用 NFS将文件从一个系统复制到另一个系统似乎仍然更快。
我认为值得询问其他人可能在类似的网络设置上使用哪些 NFS 配置,从而产生相当好的性能。我知道 NFS 对操作系统的选择和精确的网络配置等事情非常敏感。但是,我怀疑我所拥有的设置对于拥有小型本地网络的其他用户来说非常普遍,因此了解哪种配置最适合他们会很有用。
注意:我最初在superuser上问过这个问题。但是,我没有收到任何回复,所以我怀疑它可能是此类问题的错误论坛。
scp 比 NFS 快是相当标准的;与简单的机器对机器传输相比,网络文件系统的开销和需要做的事情要多得多。
NFS 应该为您提供大约 50% 的基础磁盘写入性能。如果您的磁盘速度为 100MB/s,那么您应该能够进行 50MB/s 的 NFS 写入。
关于挂载选项:使用 tcp。如果您的网络负载很重,或者任何网络设备不稳定,udp 可能会产生非常糟糕的结果。
我通常只使用 SMB 并且连接良好。我想把你指向这个网站,以防你没有看过它。
http://nfs.sourceforge.net/nfs-howto/ar01s05.html
我
rsize=8192,wsize=8192
在这里使用,我对性能没有任何抱怨。不过,我还没有测量过。