Lors de l'utilisation de rsync + ssh pour accéder à une machine distante, existe-t-il un moyen de "bien" le processus rsync sur la machine distante (pour réduire sa priorité)?
Modification de la question pour clarifier:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
backups 16651 86.2 0.1 3576 1636 ? Rs 11:06 0:06 rsync --ser...
(ligne rsync coupée)
Il s'agit d'un travail cron de sauvegarde qui s'exécute normalement à 4 heures du matin, mais lorsque je suis éveillé (et que je commets ou que j'utilise Bugzilla hébergé sur cette même machine), il tue les performances du serveur, donc je voulais un "hack" rapide pour essayer de réparer un peu.
--rsync-path="ionice -c 3 nice rsync"
, bien que les Linux modernes réduisent automatiquement la priorité d'E / S pour les processus agréables (voir la page de manuel que j'ai liée).nice 0
ionice
, la définition de l'--bwlimit
option est bonne pour une meilleure synchronisation.--rsync-path
option que je spécifiais.--rsync-path
option que vous avezrsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
/etc/default/rsync
laRSYNC_NICE='17'
valeur et laRSYNC_IONICE='-c3'
valeurPour les deux, la valeur de l' ionice sera pour la priorité du disque dur
Notez que pour Linux, seul le
cfq
planificateur implémente réellement les classes et les priorités d'E / S. Si l'administrateur système distant a opté pour le planificateur d'E / Snoop
,deadline
ou pour une variante plus exotique, vous pouvez constater queionice
cela ne fait vraiment rien. Il faut pouvoir obtenir des performances élevéescfq
et pouvoir utiliser les classes et les priorités d'E / S en réglant correctement cfq .pour une bonne valeur pour la priorité du processeur
la source
/etc/default/rsync
? Est-ce que rsync lui-même lit ce fichier, ou est-ce fait par la distribution / saveur linux?/etc/default/rsync
le fichier par défaut du mode démon rsync. Je suppose que cela ne s'applique que si vous vous connectez au démon rsync via le protocole rsync. Je suppose que cela ne s'applique pas si vous l'appelez via ssh.Une solution rapide et sale serait de créer un petit script wrapper appelé 'rsync' qui masque le $ PATH avant le vrai binaire rsync comme:
Ou configurez le fichier authorized_keys de sorte qu'il effectue le nettoyage de rsync. (En supposant que vous utilisez des clés ssh).
Exemple:
Maintenant dans votre /home/user/bin/nice-rsync.sh
HTH
la source
Vous pouvez désactiver la compression le long du réseau, en n'incluant pas l'
-z
argument, ce qui pourrait économiser du temps CPU de chaque côté. Ou changez la façon dont rsync utilise les sommes de contrôle, regardez--checksum
la source
Rsync ne devrait pas utiliser beaucoup de CPU. Je doute que vous puissiez forcer une certaine gentillesse de l'autre côté, mais ce que vous pourriez faire est de limiter la bande passante que rsync utilise avec un pare-feu, ce qui réduirait finalement la quantité de traitement qu'il pourrait faire en X temps.
la source
rsync
ne nécessite pas beaucoup de CPU mais il peuttop
néanmoins apparaître si le noyau actuel considère que les E / S attendent comme occupées. En outre, si un autre processus doit accéder au stockage etrsync
est autorisé à s'exécuter à plein rythme, tous les autres processus seront ralentis en conséquence.Je ne pense pas, vous avez besoin d'une solution personnalisée pour cela. Utilisez ftp
la source