Performance
通過 NFS 導出執行“cp -al”性能不佳
我正在實施 WD My Book Live Duo 的備份。此設備配置有軟體 RAID0。備份源目錄是設備的根目錄,目標是同一文件系統內的目錄(注意避免遞歸複製備份文件本身)。備份文件有一層加密(源文件是明文),這需要比 NAS 能夠提供的更多計算能力。因此,消耗 CPU 的操作在同一網路中的伺服器中執行。
NAS 正在通過 NFS 導出兩個目錄。一個是只讀的,包含整個文件系統(它是備份源),另一個是讀寫的(它是備份根)。配置詳細資訊在文章末尾說明。
備份伺服器
encfs
用作加密層並rsnapshot
自行執行備份。**問題是:**備份的第一步,包括
cp -al
將最後一個備份目錄放入一個新目錄,大約需要兩個小時才能完成。到目前為止,我已經在 NFS 伺服器端執行了以下測試:
cp -al
如果直接在 NAS 中執行,同樣的操作需要 5 分鐘dd /dev/zero ~/test.tmp
顯示非常接近 100 MiB/s 的吞吐量top
顯示 CPU 消耗低。但是,平均負載很高(~4)iperf
傳輸速率為 1.000 Mpbs,因此網路連結正在以預期的全容量執行vmstat 1
顯示非常高的wa(等待 IO)值(~80-90%)- 將 MTU 設置為 9000(用 測試
ping -M do mybackup
)似乎沒有任何效果- 導出
async
似乎沒有任何效果在 NFS 客戶端進行了以下測試:
dd /dev/zero /e/test.tmp
(加密)顯示與(未加密)相同的吞吐量dd /dev/zero /b
。所以加密層似乎不是問題。傳輸速率約為 30 MiB/s,這是相當低的、艱難的。使用 SMB 執行此測試會產生類似的結果top
顯示 CPU 消耗低。平均負載低於 2(伺服器有 2 個核心)vmstat 1
表明系統幾乎是空閒的- 設置
tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768
掛載選項似乎沒有任何效果配置文件
NFS 伺服器
# /etc/exports # 'mybackup' is the name of the backup server / mybackup(ro,sync,no_subtree_check,no_root_squash,crossmnt) # This export has to be explicitly declared to enable clients to access /DataVolume/b /DataVolume mybackup(ro,async,no_subtree_check,no_root_squash) # This is the backup root. /DataVolume/b mybackup(rw,async,no_subtree_check,no_root_squash)
NFS 客戶端
# /etc/fstab # 'ewnas' is the name of the NAS ewnas:/ /r nfs auto,noatime,tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768 0 0 ewnas:/DataVolume/b /b nfs auto,noatime,tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768 0 0
我已經堅持了好幾天了。任何貢獻將不勝感激。
提前致謝,
吉列爾莫
您是否嘗試過 rsync 以查看性能是否更好?
rsync -Paz --exclude-from 'rsync-exclude.txt' fromssh@server:path tossh@server:path