2x10Gb 网络:使用 NFS 传输大型文件限制为 6 Gbps

2x10Gb 网络:使用 NFS 传输大型文件限制为 6 Gbps

我正在通过网络使用 NFS 传输大文件(78GB),但传输最终被限制为 6 Gbps(在 2x10Gb NIC 上)。我暂时找不到瓶颈。这是我的设置:

1 个服务器

  • MB:Supermicro X10DRH-C(pcie 3.0),只有一个 CPU
  • 网卡:2 x 10Gb(英特尔 X710-T2L)
  • 64GB DDR4(2400Mhz)
  • HBA:LSI 9311-8i => 2 个 mini SAS hd 连接到 SAS 12Gb 背板
  • 12 HDD:消费级,SATA。东芝 MG09 18TB(因此 SAS 每条线限制为 6 Gbps)

NFS /etc/exports:xxx(rw、async、fsid=0、no_subtree_check、crossmnt)。nfsd 有 24 个线程

我尝试将dd大文件放入所有磁盘,速度没有减慢,它们的写入速度均为 200MB/s

2 个客户端

NFS 配置:异步。

MTU:9000。

  • threadripper 3970X,192GB 内存,从 4 个 NVME gen 3 的 RAID0 复制
  • 2 xeon E5,512GB RAM,从 4 个 SSD 的 RAID0 复制

客户端直接连接到服务器(无需交换机),在他们自己的网络上(10.1.0.0/24 和 10.1.2.0/24)。

我尝试使用环形缓冲区和流量控制ethtool,但没有任何变化。没有高 CPU 负载。

我通常会同时复制 6-8 个文件,复制到 6-8 个不同的磁盘 => 所以我预计平均传输速率为 9-12Gbps。网络有时会在一个接口上达到超过 9 Gbps 的速度,持续几秒钟,但最终在两个接口上都稳定在 3Gbps 左右。我猜这是由于服务器内存中的缓存

我需要一些帮助来找到瓶颈。

载入

编辑:iperf结果: 在此处输入图片描述

iperf -w 2m结果: 在此处输入图片描述

答案1

您使用什么来复制数据?我发现诸如cpmv之类的标准工具rsync扩展性不是很好,将用于bbcp此类传输。尽管该项目不幸被放弃,但它仍然更好。我能做的最好的是在我们的 nfs v4.0 安装之间通过共享的 10 Gb/s 以太网线路,但在晚上不使用时,我以前见过它以 1.2 GB/s 的速度饱和。

bbcp位于https://www.slac.stanford.edu/~abh/bbcp/
我上次检查时发现 Github 上有分支,但它们也被废弃了。
有时斯坦福 git 不起作用,但如果您全天重试,您应该能够从那里获取 v17.12.00.00.0...

如果没有,我会保留一份干净的 repo 副本,以便将其放在新机器上。我刚刚为您存档,然后对其git archive -o bbcp-17.12.00.00.0.tar master进行 gzip 压缩并将其放在此处:https://ava.genome.arizona.edu/pub/bbcp-17.12.00.00.0.tar.gz

最好的,

答案2

诊断此类网络问题可能比较棘手。请从以下步骤开始(最好一次完成一个步骤):

  • 将 Linux 电源调节器设置为性能;

  • 在客户端和服务器上启用巨型帧(从您的帖子中我看到客户端的 MTU 为 9000,但服务器没有指定);

  • 尝试仅复制单个文件的前 8 GB,至少连续两次如果连续复制速度很快,这意味着您的限制是总磁盘延迟/IOPs(网络和 NFS 会增加一些开销,因此这可能会影响您总的交付 IOPs);

  • 尝试在 NFS 3 和 4.1 之间切换,或者考虑使用 pNFS;

  • 增加 NFSrsizewsize(参见这里

相关内容