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
我看到它可以達到中等傳輸速度(58.0 MB/s)。
但是,如果我複制一個包含許多總大小約為 300 MB 的小文件(每個文件大約 1-4 kB)的目錄,則該
.php
過程將在大約 10 分鐘內結束。.jpg``cp
NFS 不適合像上述情況那樣的小文件傳輸嗎?還是有一些必須調整的參數?
傳輸許多小文件總是比傳輸單個大文件慢的原因有很多。對於讀取,文件更有可能分散在磁碟周圍,需要到處尋找才能獲取它們。正如 Evan 所提到的,在 NFS(或任何其他文件系統)的情況下還涉及元數據,這也使事情變得複雜。
您可以嘗試增加NFS 掛載的參數
rsize
和wsize
參數,看看這是否有助於提高性能。另請查看有關調整 NFS 以實現最小延遲的這個問題,因為它有很多有用的建議,這些建議將在許多小文件傳輸的情況下有所幫助。