我正在使用 NFS 通过网络传输大文件 (78GB),但传输最终限制为 6 Gbps(在 2x10Gb NIC 上)。我暂时找不到瓶颈。这是我的设置:
1台服务器
- MB: Supermicro X10DRH-C (pcie 3.0), 只有一个 cpu
- 网卡:2 个 10Gb(英特尔 X710-T2L)
- 64GB DDR4 (2400Mhz)
- HBA:LSI 9311-8i => 2 mini SAS hd 连接到 SAS 12Gb 背板
- 12 HDD:消费级,SATA。Toshiba MG09 18TB(因此 SAS 限制为每条线路 6 Gbps)
NFS /etc/exports:xxx(rw、async、fsid=0、no_subtree_check、crossmnt)。nfsd 24 个线程
我尝试将dd
大文件写入所有磁盘,没有减速,它们都以 200MB/s 的速度写入
2个客户
NFS 配置:异步。
最大传输单位:9000。
- threadripper 3970X,192GB 内存,从 4 NVME gen 3 的 RAID0 复制
- 2 xeon E5,512GB 内存,从 4 个 SSD 的 RAID0 复制
客户端在自己的网络(10.1.0.0/24 和 10.1.2.0/24)上直接连接到服务器(无交换机)。
我尝试使用 ring buffer 和 flow control 来玩ethtool
,但它没有改变任何东西。没有高 CPU 负载。
我通常同时将 6-8 个文件复制到 6-8 个不同的磁盘上 => 所以我期望平均传输速率为 9-12Gbps。网络有时会在一个接口上达到超过 9 Gbps 的峰值,持续几秒钟,但最终在两个接口上稳定在 3Gbps 左右。我想这是由于服务器内存中的缓存
我需要一些帮助来找到瓶颈。
诊断此类网络问题可能很棘手。请从以下步骤开始(最好一次完成一个):
将 Linux 电源调节器设置为性能;
在客户端和服务器上启用巨型帧(从您的帖子中我看到客户端的 MTU 为 9000,但未为服务器指定);
尝试仅复制单个文件的前 8 GB,至少连续复制两次。如果连续副本很快,这意味着您的限制是总磁盘延迟/IOP(网络和 NFS 增加了一些开销,因此这会影响您的总交付 IOP);
尝试在 NFS 3 和 4.1 之间切换,或者考虑使用 pNFS;
增加 NFS
rsize
和wsize
(见这里)