Linux
Debian 上的 NFS 性能問題
我在兩台令人喘不過氣的機器之間的 NFS 性能非常不一致,我似乎無法確定它。
設置:
機器 1 ‘video1’:雙 5506 w/12GB ram,8x3TB RAID6 上的 XFS,從 ‘/mnt/storage’ 導出為 ‘video1’
機器 2 ‘storage1’:Phenom X2 @ 3.2Ghtz w/8GB ram,5x2TB 上的 ZFS 從 /mnt/storage1-storage 導出為 ‘storage1’
本地寫入性能:
mackek2@video1:/mnt/storage/testing$ dd if=/dev/zero of=localwrite10GB bs=5000k count=2000 2000+0 records in 2000+0 records out 10240000000 bytes (10 GB) copied, 16.7657 s, 611 MB/s
本地讀取性能:
兩者都連接到同一個 HP 千兆交換機,iperf 雙向提供堅如磐石的 940mbps。
我的問題是,當我從 storage1 寫入 video1 導出時,性能無處不在。似乎對於文件傳輸的前幾 (5-7) 個演出(我希望盡快移動 30-120GB AVCHD 或 MJPEG 文件),性能從 900mbps 下降到 150-180mbps,所以慢到 30mbps。如果我重新啟動 NFS 核心伺服器,性能會恢復一些演出。
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite10GB count=2000 bs=5000K 2000+0 records in 2000+0 records out 10240000000 bytes (10 GB) copied, 223.794 s, 45.8 MB/s mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite10GBTest2 count=2000 bs=5000K 2000+0 records in 2000+0 records out 10240000000 bytes (10 GB) copied, 198.462 s, 51.6 MB/s mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=bigfile776 count=7000 bs=2000K 7000+0 records in 7000+0 records out 14336000000 bytes (14 GB) copied, 683.78 s, 21.0 MB/s mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite15GB count=3000 bs=5000K 3000+0 records in 3000+0 records out 15360000000 bytes (15 GB) copied, 521.834 s, 29.4 MB/s
當事情進展得很快時,客戶端上的 nfsiostat 會提供幾毫秒的平均 RTT,但一旦性能下降,它就會飆升至超過 1.5 秒的 RTT。此外,在寫入發生時,CPU 隊列深度會躍升至 8 以上。
現在,當從同一個出口讀取時,我得到了漂亮的 890Mbps 的整個讀取速度或幾 mbps。
mackek2@storage1:/mnt/video1/testing$ dd if=remoteWrite10GBTest2 of=/dev/null 20000000+0 records in 20000000+0 records out 10240000000 bytes (10 GB) copied, 89.82 s, 114 MB/s mackek2@storage1:/mnt/video1/testing$ dd if=remoteWrite15GB of=/dev/null 30000000+0 records in 30000000+0 records out 15360000000 bytes (15 GB) copied, 138.94 s, 111 MB/s
反過來,將 storage1 作為 NFS 伺服器也會發生同樣的事情。CPU隊列跳起來,速度下降到垃圾,我把頭髮拉了出來。
我曾嘗試將 NFS 守護程序的數量增加到 64 個,但在執行幾場後它仍然會消失。
您不包括掛載或導出選項,因此 NFS 有許多可能會影響性能的事情。我建議嘗試以下選項以獲得最大 NFS 性能和可靠性(根據我的經驗):
- 安裝選項:
tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768
- 導出選項:
async