Linux

Debian 上的 NFS 性能問題

  • August 28, 2012

我在兩台令人喘不過氣的機器之間的 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

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