URL: https://linuxfr.org/users/lolz/journaux/consid%C3%A9ration-sur-lemploi-de-rsync Title: Considération sur l'emploi de rsync Authors: Lol Zimmerli Date: 2009年01月15日T12:52:02+01:00 Tags: debian Score: 15 Cher journal, j'ai du récemment faire des tests avec rsync pour savoir quel était le moyen de l'utiliser qui allait utiliser le moins de temps (et donc de bande passante) possible. Le but est d'envoyer régulièrement des fichiers textes qui changent souvent mais peu (des dumps .sql). Alors faut-il les envoyer en .sql ou en .sql.gz? Et chez nous, nous utilisons la compression de rsync (-z) pour les transferts via internet mais pas pour les transferts sur le LAN (switch gigabit). Aussi, j'ai entrepris de faire quelques tests avec et sans compression, en envoyant un fichier puis sa version un peu modifiée (dumpée qques heures plus tard). J'ajoute que le test a été fait sur des machines debian stable 4.0 etch, avec rsync version 2.6.9 protocol version 29. J'ai utilisé deux fichier de taille différentes: * 1.sql de 18986153 octets * 2.sql de 38907957 octets Si je gzip ces fichiers normalement, ils font: * 1.sql de 974669 octets, soit ~5% de l'original * 2.sql de 5622484 octets, soit ~15% de l'original Si je les gzip avec l'option --rsyncable, j'arrive à: * 1.sql de 1052710 octets, soit ~108% de l'autre gz * 2.sql de 5804575 octets, soit ~103% de l'autre gz Voyons maintenant quel est le _speedup_ et combien d'octets sont envoyés au second envoi. Sans compression rsync (-av): * 1.sql 278.19; 42028 sent * 2.sql 33.33; 1123604 sent * 1.sql.gz 10.72; 84947 sent * 2.sql.gz 1.33; 4209490 sent * 1.sql.gz (avec --rsyncable) 31.02; 27728 sent * 2.sql.gz (avec --rsyncable) 8.06; 706105 sent Ici, on le voit, le meilleur moyen est d'utiliser un .gz avec --rsyncable. Pour autant que la bande passante soit une priorité tout en utilisant pas la compression rsync (-z). Plus intéressant, voyons les mêmes tests, **avec** la compression rsync (-avz): * 1.sql 602.18; 5309 sent * 2.sql 198.33; 152437 sent * 1.sql.gz 11.16; 81335 sent * 2.sql.gz 1.33; 4208162 sent * 1.sql.gz (avec --rsyncable) 35.16; 23730 sent * 2.sql.gz (avec --rsyncable) 8.14; 698166 sent Là, il n'y a pas photo, l'utilisation de fichiers gzippés augmente considérablement la taille du transfert! L'option --rsyncable réduit bien le transfert par rapport au .gz normal, mais le .sql est largement devant. Notons aussi que, compression rsync (-z) ou pas, l'envoi d'un .gz normal est quasi identique; il renvoie quasi tout le fichier dans les deux cas. Moralité : faut pas envoyer des .gz de fichiers texte en utilisant la compression rsync, cela rallonge drôlement la taille et donc le temps du transfert.