Warum ist rsync langsamer als NFS?

Warum ist rsync langsamer als NFS?

Verwenden von rsync zum Kopieren einiger großer Dateien (je 24 MB):

bronger@steed:/tmp$ time rsync -r root@my_nas::media/distortion .
Password: 

real    0m18.128s
user    0m2.600s
sys     0m5.756s

(Ziehen Sie 2 Sekunden für die Eingabe des Passworts ab.) Nun dasselbe mit NFS:

bronger@steed:/tmp$ time cp -a /mnt/media/distortion .

real    0m5.569s
user    0m0.036s
sys     0m2.128s

Wie kann das sein? Es erfolgt weder eine Komprimierung noch eine Verschlüsselung, dennoch beträgt die CPU-Auslastung auf der Serverseite 100 %. Es handelt sich um ein NAS mit einer langsamen ARM-CPU, aber selbst dann sollte jede Kopieraktion durch IO begrenzt sein.

In der Datei rsyncd.conf steht:

pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
use chroot = no

[media]
path = /volume1/media 
comment = Main volume                      
fake super = yes                         
uid = 1000
gid = 1000    
read only = no
list = yes     
charset = utf-8  
auth users = root                 
secrets file = /etc/rsyncd.secrets

Antwort1

rsync ist langsamer als NFS, wenn rsync CPU-gebunden ist. rsync istvielweniger effizient als NFS, wenn es um die reine Datenübertragung geht. In meinem Fall verbrauchte rsync 100 % der CPU, während NFS nur 20 % benötigte und NFS immer noch um den Faktor 3 schneller war. Das bedeutet, dass rsync bei gleichem Netzwerkverkehr 15-mal (!) mehr CPU-Ressourcen verbrauchte als NFS. Ich habe große Dateien übertragen.

Der beste Ansatz in einem solchen Szenario besteht darin, das Verzeichnis mit NFS auf dem schnelleren Computer zu mounten und die Dateien lokal mit rsync zu kopieren.

Sehen SieLWN-Artikelvon jemandem mit einem ähnlichen Problem.

Antwort2

RSync macht seine Hausaufgaben, bevor es beginnt, und stellt sicher, dass das Kopieren überhaupt erforderlich ist.

Wenn Sie bereits über identische lokale Versionen der Dateien verfügten, hätte rsync gewonnen, weil es intelligenter ist.

verwandte Informationen