Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle soit sur le sujet pour Unix et Linux Stack Exchange.
Fermé il y a 4 ans.
Améliorer cette question
J'ai acheté un nouveau disque dur pour mon serveur et j'essaie de réorganiser mes fichiers. Pour le premier transfert, rsync
parfaitement copié ~ 3 Go. Cependant, avec l'équivalent rsync
commande, le second transfert échoue.
$ sudo /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 rsync -aEHAXPx /media/a/ /media/b --delete
...
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.1]
La première exécution a copié environ 550 sur 800 Go avant de s'étouffer. Les tentatives plus récentes ne parviennent qu'à copier 1 Go avant de mourir. Je ne sais pas si c'est pertinent, mais la source est un lecteur de sauvegarde incrémentielle backintime, il contient donc une tonne de liens physiques. Comment puis-je corriger cette erreur et terminer la commande ?
J'utilise la version 3.1.1 du protocole rsync version 31.
Réponse acceptée :
dmesg | grep rsync
[85852.560086] Manque de mémoire :tuer le processus 4242 (rsync) score 194 ou sacrifier l'enfant
solution :
- réglez votre vitesse de rsync en dessous de celle de vos disques.
--bwlimit=6000
.. USB 2 est de 60 Mo/s /4 pour rw sur 2 disques ou /10 pour la recherche sur non ssd… ou obtenez un XU4 avec 2 Go de RAM et USB3. - modifier les paramètres de mémoire du noyau
echo 100 > /proc/sys/vm/watermark_scale_factor
- forcer une purge mémoire lors de l'opération
echo 3 > /proc/sys/vm/drop_caches
- assurez-vous que vous utilisez le noyau 4.9.29
uname -r