小文件的慢 NFS 传输性能

Ari*_*e K 14 performance nfs

我在使用 RAID 1+0 组合的 HP ML370 G5、Smart Array P400、SAS 磁盘上使用 Openfiler 2.3。

我使用 Openfiler 的基于 Web 的配置从 ext3 分区设置了 NFS 共享,并且我成功地从另一台主机挂载了该共享。两台主机都使用专用的千兆链路连接。

简单的基准测试使用dd

 $ dd if=/dev/zero of=outfile bs=1000 count=2000000
 2000000+0 records in
 2000000+0 records out
 2000000000 bytes (2.0 GB) copied, 34.4737 s, 58.0 MB/s
Run Code Online (Sandbox Code Playgroud)

我看到它可以达到中等传输速度(58.0 MB/s)。

但是,如果我复制包含许多小文件的目录(.php.jpg总规模约300 MB的,每个文件围绕1-4 KB),该cp过程结束在10分钟左右。

NFS 不适合上述情况下的小文件传输吗?还是有一些参数需要调整?

Eva*_*son 8

我没有很多 NFS 经验,但我使用其他网络文件共享协议的经验表明,性能在“许多小文件”场景中几乎普遍存在。您正在招致往返延迟,并且延迟加起来的一大组文件。


Kam*_*iel 8

传输许多小文件总是比传输单个大文件慢的原因有很多。对于读取,文件更有可能分散在磁盘周围,需要到处寻找才能获取它们。正如 Evan 所提到的,NFS(或任何其他文件系统)也涉及元数据,这也使事情变得复杂。

您可以尝试增加NFS 挂载的rsizewsize参数,看看这是否对性能有所帮助。另请查看有关调整 NFS 以获得最小延迟的问题,因为它有很多有用的建议,可以在许多小文件传输的情况下提供帮助。