我有一个1 GBit / sec交换机作为中心点的家庭networking,所有计算机都有1 GBit / sec的NIC。 但是,我通过NFS共享最多可以获得200 MBit / sec的拷贝速度。 看来我应该可以得到更多。 我现实的期望是什么,如何调整我的系统和NFS服务器以获得更高的速度?
所有涉及的系统都是Linux,顺便说一下(CentOS和Fedora的组合)。
你被头顶打了 你想看看巨型帧,并扩大你的nfs读/写数据大小。 networking上的NFS性能调整有很多指导,就像这个看起来不太过时的指南。
也意识到你永远不会比磁盘速度做得更好,所以确保这不是一个瓶颈。
你应该挑衅地看着巨型框架。 即使是便宜的5端口GbE集线器,现在也可以这样做,但是必须在连接的两端启用巨型帧。 要启用巨型帧,请执行此操作
ifconfig eth0 mtu 9000
以下是从我们的文件pipe理器自动挂载主目录时使用的挂载选项
rw,intr,soft,nfsvers=3.tcp,nolock,noatime,rsize=32768,wsize=32768
请更新问题,并让我们知道这是否改善的情况
巨型框架当然可以提供帮助,但是不要期望它能够神奇地给你100%的吞吐量增加。 在另一个问题中查看我的post,讨论如何在不将磁盘I / O放入图片的情况下testingnetworking吞吐量的方法。 这将给你一个基准,看看是否有其他因素与networking无关。
如果您打算启用巨帧,请按照此处的build议,了解一些限制和要求。
第二个项目符号的原因:考虑在相同vlan中设置两台PC,一台configuration为9000字节帧,另一台configuration为1500字节帧。 configuration为标准帧的PC1将能够成功发送数据包给PC2。 但是,PC2发送的回复都是9000字节帧。 由于PC1configuration为标准帧,所以无法处理巨型帧,并且会丢弃。 要解决这个问题,您需要在两台PC之间插入一个L3设备(路由器),以便能够进行通信。
瓶颈可以是你的networking或你的硬盘。 首先检查哪些是,然后优化。
你有能力打开网卡中断合并,接收端缩放或任何forms的TCP卸载(校验和或全包)? 如果你可以启用它们,它们将会产生巨大的影响,这取决于你的网卡和IP协议栈。
有关NFS的具体信息,请注意,较新的NFS实现不仅支持UDP,还支持TCP。 默认仍然是通常的UDP。 奇怪的是,在非常快的networking上,由于窗口化,TCP可以更快。 尝试两种方式并进行比较。
对于其他技巧,只需search网站。 这个话题的一般forms已经被击败了七十亿次。 🙂
不要忘记确保启用巨型帧,并确保您使用的任何networking交换机也支持巨型帧,然后启用。 您可能想要在NFS共享上运行RAID分条以提高速度。