![Warum ist rsync langsamer als NFS?](https://rvso.com/image/1344723/Warum%20ist%20rsync%20langsamer%20als%20NFS%3F.png)
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.