![¿Por qué rsync es más lento que NFS?](https://rvso.com/image/1344723/%C2%BFPor%20qu%C3%A9%20rsync%20es%20m%C3%A1s%20lento%20que%20NFS%3F.png)
Usando rsync para copiar algunos archivos grandes (24 MB cada uno):
bronger@steed:/tmp$ time rsync -r root@my_nas::media/distortion .
Password:
real 0m18.128s
user 0m2.600s
sys 0m5.756s
(Reste 2 segundos para escribir la contraseña). Ahora, lo mismo con NFS:
bronger@steed:/tmp$ time cp -a /mnt/media/distortion .
real 0m5.569s
user 0m0.036s
sys 0m2.128s
¿Cómo puede ser esto? No hay compresión ni cifrado involucrados, pero el uso de la CPU en el lado del servidor es del 100%. Es un NAS con una CPU ARM lenta, pero aun así cualquier acción de copia debería estar limitada por IO.
El archivo rsyncd.conf dice:
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
Respuesta1
rsync es más lento que NFS si rsync está vinculado a la CPU. rsync esmuchomenos eficiente que NFS cuando se trata de la mera transferencia de datos. En mi caso, rsync consumió el 100 % de la CPU, mientras que NFS necesitaba solo el 20 %, y NFS aún era más rápido en un factor de 3. Esto significa que rsync consumió 15 veces (!) más recursos de CPU que NFS para la misma cantidad de tráfico de red. Transferí archivos grandes.
El mejor enfoque en tal escenario es montar el directorio con NFS en la máquina más rápida y copiar los archivos con rsync localmente.
Ver unartículo de LWNde alguien con un problema similar.
Respuesta2
RSync hará su tarea antes de comenzar para asegurarse de que copiar sea incluso un requisito.
Si ya tuviera versiones locales de los archivos iguales, rsync habría ganado porque es más inteligente.