3 votes

Pourquoi rsync est-il plus lent que NFS?

Utilisation de rsync pour copier quelques gros fichiers (24 Mo chacun) :

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

réel    0m18.128s
utilisateur    0m2.600s
système    0m5.756s

(Soustraire 2 secondes pour la saisie du mot de passe.) Maintenant, la même chose avec NFS :

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

réel    0m5.569s
utilisateur    0m0.036s
système    0m2.128s

Comment est-ce possible ? Il n'y a ni compression ni chiffrement impliqués, pourtant l'utilisation du CPU du côté du serveur est de 100 %. C'est un NAS avec un CPU ARM lent, mais même alors, toute action de copie devrait être limitée par l'IO.

Le fichier rsyncd.conf indique :

fichier PID = /var/run/rsyncd.pid
fichier de verrouillage = /var/run/rsync.lock
utilisation de chroot = non

[média]
chemin = /volume1/media 
commentaire = Volume principal                      
superposition fictive = oui                         
uid = 1000
gid = 1000    
lecture seule = non
liste = oui     
jeu de caractères = utf-8  
utilisateurs d'authentification = root                 
fichier de secrets = /etc/rsyncd.secrets

0 votes

Vous changez à la fois de protocole et de technique. Pourriez-vous ajouter un test avec un rsync local (de répertoire à répertoire) pour comparaison?

0 votes

Je peux changer le protocole, mais le matériel (lecteurs de disque, contrôleurs d'interface réseau) est le même, tout comme le reste de la pile logicielle. Si je synchronise localement le montage NFS (au lieu de cp), cela prend 9 secondes.

1 votes

J'ai trouvé un article LWN. Peut-être que rsync consomme vraiment autant de CPU lors de la transmission de gros volumes de données qu'il ne devrait pas fonctionner sur des appareils lents.

4voto

Torsten Bronger Points 393

Rsync est plus lent que NFS si rsync est lié au CPU. rsync est beaucoup moins efficace que NFS en ce qui concerne le simple transfert des données. Dans mon cas, rsync consommait 100% du CPU tandis que NFS n'en nécessitait que 20%, et NFS était toujours plus rapide d'un facteur de 3. Cela signifie que rsync consommait 15 fois (!) plus de ressources CPU que NFS pour la même quantité de trafic réseau. J'ai transféré de gros fichiers.

La meilleure approche dans un tel scénario est de monter le répertoire avec NFS sur la machine plus rapide, et de copier les fichiers avec rsync localement.

Consultez un article de LWN d'une personne ayant un problème similaire.

1voto

Brian Adkins Points 1871

RSync va faire ses devoirs avant de commencer pour être sûr que la copie est vraiment nécessaire.

Si vous aviez déjà des versions locales des fichiers identiques, rsync aurait gagné car il est plus intelligent.

0 votes

Le répertoire à copier n'existait pas sur la machine destination. Il devrait prendre des millisecondes pour que rsync voie cela. Ainsi, le travail principal devrait simplement être d'envoyer toutes les données à travers le fil - dans les deux cas, rsync et NFS.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X