[Linux] Acceleration de transferts

Antoine Delaporte adlp@::1
Jeu 10 Juil 10:53:41 CEST 2025


Bon, juste pour partager (et faire un peu d'animation, je le reconnais :) )


J'ai 5 disques dur USB à préparer avant leur expédition.
Il s'agit de disque dur de backup externalisés, je synchronise donc
régulièrement le données dessus, afin que le jour de leur départ,
il y ai un différentiel minimal.


Mon 1er script avait simplement été une boucle for qui lançait un
rsync sur les 5 disques...
Avant-hier, j'ai pris le temps de modifier mon script, c'est
maintenant un Makefile qui parallélise les 5 rsync.

Le résultat était attendu, mais pas dans ces extrêmes là (d'où
mon partage).

Comme vous verrez... avec la parallélisation on va ~2,5 fois plus
vite... j'aurais compris de gagner 20%, mais là !!! en plus, on
reste sûr de l'usb...


Bon plusieurs points :
   * Je suis très surpris de ces résultats, mais bon, ils sont factuels 
(horodatage des mails)
   * Ok il y a le cache disque qui est là
   * Je n'aime toujours pas les vitesses annoncées par rsync :-D
   * Je vous mets quelques rapports de transfert, je reste un peu surpris


Voici quelques retour de transfert sur les mêmes tranches horaires :
(j'ai encore 10j a regarder ces relevés :) )

	Durée   size	v reele	v.rsync moy
for	15	10,9	12	66
for	13	9,3	12	63
for	4	3,8	16	76
for	4	3,6	15	72
for	4	3,6	15	70
for	6	4,6	13	63
make	2	4,2	35	27
make	8	17,7	37	28


1ere colonne : techno
2nd colonne  : Durée estimée (début du cron, fin du cron)
3eme colonne : Taille des données transférée
4eme colonne : Vitesse réelle (taille/temps)
5eme colonne : moyenne des vitesse annoncée par rsync :D



Et maintenant le script en make :
======================8<-----------------------------------
#!/usr/bin/make -f

DISK=sdb sdc sdd sde sdf
MAKEFILE_JUSTNAME := $(firstword $(MAKEFILE_LIST))
MAKEFILE_COMPLETE := $(MAKEFILE_JUSTNAME)

.DEFAULT_GOAL := runThem

allrsync: ${DISK}

sd%:
	rsync --delete-before -av /mnt/borg00/ /mnt/poc/$@1/bkp/

poll:
	@make -f ${MAKEFILE_COMPLETE} allrsync -j 5

runThem: poll
======================8<-----------------------------------




-- 



Plus d'informations sur la liste de diffusion linux