Por que o rsync é mais lento que o NFS?

3

Usando o rsync para copiar alguns arquivos grandes (24MB cada):

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

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

(Subtrai 2 segundos para digitar a senha.) Agora, a mesma coisa com o NFS:

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

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

Como isso pode ser? Não há compactação ou criptografia envolvida, mas o uso da CPU no lado do servidor é 100%. É um NAS com uma CPU ARM lenta, mas mesmo assim qualquer ação de cópia deve ser limitada por IO.

O arquivo rsyncd.conf diz:

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
    
por Torsten Bronger 29.12.2012 / 16:06

2 respostas

3

O rsync é mais lento que o NFS se o rsync estiver limitado à CPU. O rsync é muito menos eficiente que o NFS quando se trata da mera transferência de dados. No meu caso, o rsync consumiu 100% da CPU enquanto o NFS precisou apenas de 20%, e o NFS foi ainda mais rápido em um fator de 3. Isso significa que o rsync consome 15 vezes mais recursos da CPU que o NFS para a mesma quantidade de tráfego de rede. Eu transferi arquivos grandes.

A melhor abordagem em tal cenário é montar o diretório com o NFS na máquina mais rápida e copiar os arquivos com o rsync localmente.

Veja um artigo do LWN de alguém com um problema semelhante.

    
por 21.01.2013 / 09:44
0

O RSync fará o dever de casa antes de começar a garantir que a cópia seja um requisito.

Se você já tinha versões locais dos arquivos que eram iguais, o rsync teria vencido porque é mais inteligente.

    
por 29.12.2012 / 16:13