Performance

小文件的 NFS 傳輸性能慢

  • February 28, 2020

我在使用 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

我看到它可以達到中等傳輸速度(58.0 MB/s)。

但是,如果我複制一個包含許多總大小約為 300 MB 的小文件(每個文件大約 1-4 kB)的目錄,則該.php過程將在大約 10 分鐘內結束。.jpg``cp

NFS 不適合像上述情況那樣的小文件傳輸嗎?還是有一些必須調整的參數?

傳輸許多小文件總是比傳輸單個大文件慢的原因有很多。對於讀取,文件更有可能分散在磁碟周圍,需要到處尋找才能獲取它們。正如 Evan 所提到的,在 NFS(或任何其他文件系統)的情況下還涉及元數據,這也使事情變得複雜。

您可以嘗試增加NFS 掛載的參數rsizewsize參數,看看這是否有助於提高性能。另請查看有關調整 NFS 以實現最小延遲的這個問題,因為它有很多有用的建議,這些建議將在許多小文件傳輸的情況下有所幫助。

引用自:https://serverfault.com/questions/31628