Thomas Vander Stichele Asked: 2009-05-01 07:48:01 +0800 CST2009-05-01 07:48:01 +0800 CST 2009-05-01 07:48:01 +0800 CST 如何优化 1GBit 家庭网络上的 NFS 复制速度?[关闭] 772 我有一个以 1 GBit/sec 交换机为中心点的家庭网络,以及所有具有 1 GBit/sec NIC 的计算机。但是,我通过 NFS 共享获得最多 200 MBit/秒的复制速度。看来我应该能够得到更多。我可以期待什么以及如何调整我的系统和 NFS 服务器以获得更高的速度? 顺便说一下,所有涉及的系统都是 Linux(CentOS 和 Fedora 的混合)。 linux nfs 7 个回答 Voted pjz 2009-05-01T07:51:39+08:002009-05-01T07:51:39+08:00 你被开销打败了。您想查看巨型帧并扩展您的 nfs 读/写数据大小。网上有很多关于 NFS 性能调整的指南,比如这个看起来并不过时的指南。 还要意识到您永远无法比磁盘速度做得更好,因此请确保这不是瓶颈。 Dave Cheney 2009-05-06T09:29:17+08:002009-05-06T09:29:17+08:00 你应该大胆地研究巨型帧。如今,即使是便宜的 5 端口 GbE 集线器也可以做到这一点,但是您必须在连接的两端启用巨型帧。要启用巨型帧,请执行此操作 ifconfig eth0 mtu 9000 这是我从文件管理器自动挂载主目录时使用的挂载选项 rw,intr,soft,nfsvers=3.tcp,nolock,noatime,rsize=32768,wsize=32768 请更新问题并让我们知道这是否可以改善情况 Dave K 2009-05-06T12:03:11+08:002009-05-06T12:03:11+08:00 巨型帧当然可以提供帮助,但不要指望它能神奇地使您的吞吐量提高 100%。在另一个问题中查看我的帖子,该问题讨论了一种在不将磁盘 i/o 纳入图片的情况下测试网络吞吐量的方法。这将为您提供一个基线,以查看是否可能存在与网络无关的其他因素。 如果您确实计划启用巨型帧,正如这里的一些建议,请注意一些限制和要求。 路径上的所有设备都必须支持并启用巨型帧。这包括: 发送和接收 nic 设备连接到的两个交换机端口 从发送方到接收方的路径上的所有 L2 交换机端口(交换机到交换机连接) 路径上的所有 L3 接口(如果适用) 绝对确保同一 vlan 中的所有设备都支持并配置为巨型帧。 第二个项目符号的原因:考虑在同一个 vlan 中设置两台 PC,一台配置为 9000 字节帧,另一台配置为 1500 字节帧。配置为标准帧的 PC1 将能够成功地向 PC2 发送数据包。但是,PC2 发送的回复都是 9000 字节的帧。由于 PC1 配置为标准帧,它将无法处理巨型帧,它们将被丢弃。要解决此问题,您需要在两台 PC 之间插入 L3 设备(路由器),以便它们能够通信。 Kazimieras Aliulis 2009-05-05T07:57:00+08:002009-05-05T07:57:00+08:00 瓶颈可能是您的网络或硬盘驱动器。首先检查哪些是,然后优化。 Chopper3 2009-05-05T08:07:48+08:002009-05-05T08:07:48+08:00 您是否能够打开 NIC 中断合并、接收端缩放或任何形式的 TCP 卸载(校验和或整体打包)?如果您可以启用它们,它们将产生巨大的影响,这取决于您的 NIC 和 IP 堆栈。 Brian Knoblauch 2009-05-06T12:06:33+08:002009-05-06T12:06:33+08:00 对于 NFS 特定信息,请注意,较新的 NFS 实现不仅支持 UDP,还支持 TCP。默认仍然通常是 UDP。奇怪的是,在非常快的网络上,由于窗口化,TCP 可以更快。尝试两种方式并进行比较。 有关其他提示,只需搜索该站点。这个话题的一般形式已经被打死了 1100 亿次。:-) Eddie 2009-05-01T07:57:57+08:002009-05-01T07:57:57+08:00 不要忘记确保您启用了巨型帧,并确保您使用的任何网络交换机也支持巨型帧然后启用。您可能希望在 NFS 共享上运行 RAID 条带化以提高速度。
你被开销打败了。您想查看巨型帧并扩展您的 nfs 读/写数据大小。网上有很多关于 NFS 性能调整的指南,比如这个看起来并不过时的指南。
还要意识到您永远无法比磁盘速度做得更好,因此请确保这不是瓶颈。
你应该大胆地研究巨型帧。如今,即使是便宜的 5 端口 GbE 集线器也可以做到这一点,但是您必须在连接的两端启用巨型帧。要启用巨型帧,请执行此操作
这是我从文件管理器自动挂载主目录时使用的挂载选项
请更新问题并让我们知道这是否可以改善情况
巨型帧当然可以提供帮助,但不要指望它能神奇地使您的吞吐量提高 100%。在另一个问题中查看我的帖子,该问题讨论了一种在不将磁盘 i/o 纳入图片的情况下测试网络吞吐量的方法。这将为您提供一个基线,以查看是否可能存在与网络无关的其他因素。
如果您确实计划启用巨型帧,正如这里的一些建议,请注意一些限制和要求。
第二个项目符号的原因:考虑在同一个 vlan 中设置两台 PC,一台配置为 9000 字节帧,另一台配置为 1500 字节帧。配置为标准帧的 PC1 将能够成功地向 PC2 发送数据包。但是,PC2 发送的回复都是 9000 字节的帧。由于 PC1 配置为标准帧,它将无法处理巨型帧,它们将被丢弃。要解决此问题,您需要在两台 PC 之间插入 L3 设备(路由器),以便它们能够通信。
瓶颈可能是您的网络或硬盘驱动器。首先检查哪些是,然后优化。
您是否能够打开 NIC 中断合并、接收端缩放或任何形式的 TCP 卸载(校验和或整体打包)?如果您可以启用它们,它们将产生巨大的影响,这取决于您的 NIC 和 IP 堆栈。
对于 NFS 特定信息,请注意,较新的 NFS 实现不仅支持 UDP,还支持 TCP。默认仍然通常是 UDP。奇怪的是,在非常快的网络上,由于窗口化,TCP 可以更快。尝试两种方式并进行比较。
有关其他提示,只需搜索该站点。这个话题的一般形式已经被打死了 1100 亿次。:-)
不要忘记确保您启用了巨型帧,并确保您使用的任何网络交换机也支持巨型帧然后启用。您可能希望在 NFS 共享上运行 RAID 条带化以提高速度。