Linux
為什麼我的 rsync 這麼慢?
我的筆記型電腦和工作站都連接到千兆交換機。兩者都在執行 Linux。但是當我用 複製文件時
rsync
,它的性能很差。我得到大約 22 MB/s。理論上我不應該得到大約 125 MB/s 嗎?這裡的限制因素是什麼?
**編輯:**我進行了一些實驗。
筆記型電腦的寫入性能
筆記型電腦有一個帶有全盤加密的 xfs 文件系統。它使用
aes-cbc-essiv:sha256
256 位密鑰長度的密碼模式。磁碟寫入性能為58.8 MB/s。iblue@nerdpol:~$ LANG=C dd if=/dev/zero of=test.img bs=1M count=1024 1073741824 Bytes (1.1 GB) copied, 18.2735 s, 58.8 MB/s
工作站上的讀取性能
我複制的文件位於超過 5 個 HDD 的軟體 RAID-5 上。在突襲之上是一個lvm。卷本身使用相同的密碼進行加密。該工作站有一個 FX-8150 cpu,它有一個本地 AES-NI 指令集,可以加速加密。磁碟讀取性能為256 MB/s(記憶體很冷)。
iblue@raven:/mnt/bytemachine/imgs$ dd if=backup-1333796266.tar.bz2 of=/dev/null bs=1M 10213172008 bytes (10 GB) copied, 39.8882 s, 256 MB/s
網路性能
我在兩個客戶端之間執行 iperf。網路性能為939 Mbit/s
iblue@raven $ iperf -c 94.135.XXX ------------------------------------------------------------ Client connecting to 94.135.XXX, TCP port 5001 TCP window size: 23.2 KByte (default) ------------------------------------------------------------ [ 3] local 94.135.XXX port 59385 connected with 94.135.YYY port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.09 GBytes 939 Mbits/sec
另一種緩解高 CPU 使用率但仍保留 rsync 功能的方法是從 rsync/SSH 遷移到 rsync/NFS。您可以通過 NFS 導出要從中複製的路徑,然後在本地使用 rsync 從 NFS 掛載到目標位置。
在從 WD MyBook Live 網路磁碟進行的一項測試中,從千兆網路上的 NAS 到 2 個本地 USB 磁碟的一個或多個 rsync 在導出後不會超過 10MB/秒(CPU:80% usr,20% sys) NFS 和從 NFS 共享本地同步到兩個磁碟我總共獲得了 45MB/秒(最大化兩個 USB2 磁碟)和很少的 CPU 使用率。使用 rsync/SSH 時的磁碟使用率約為 6%,使用 rsync/NFS 時接近 24%,而兩個 USB2 磁碟都接近 100%。
因此,我們有效地將瓶頸從 NAS CPU 轉移到了兩個 USB2 磁碟上。