¿Por qué rsync es más lento que NFS?

¿Por qué rsync es más lento que NFS?

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.

información relacionada