J'ai une grande image iso qui est actuellement téléchargée par un client torrent avec la réservation d'espace activée: cela signifie que la taille du fichier ne change pas tandis que certains morceaux dans (4 Mib) changent constamment en raison d'un téléchargement.
À 90% de téléchargement, je fais la synchronisation initiale pour gagner du temps plus tard:
$ rsync -Ph DVD.iso / media / another-hdd / envoi d'une liste de fichiers incrémentielle DVD.iso 2.60G 100% 40.23MB / s 0:01:01 (xfer # 1, à vérifier = 0/1) envoyé 2,60 G octets reçu 73 octets 34,59 M octets / sec la taille totale est de 2,60G, l'accélération est de 1,00
Ensuite, lorsque le fichier est entièrement téléchargé, je rsync à nouveau:
total size is 2.60G speedup is 1.00
Speedup = 1 indique que le transfert delta n'a pas été utilisé, bien que 90% du fichier n'ait pas changé, le répertoire cible se trouve sur un autre FS et la copie prend plusieurs minutes. Pourquoi n'essaye-t-il pas d'accélérer le transfert?! Comment puis-je forcer rsync
à utiliser le transfert delta?
Réponses:
Selon la page de manuel, psusi a raison:
la source
-no-W
-no-W
ne fonctionne pas uniquement l'option longue-no-whole-file
. Ma raison d'avoir besoin de ce commutateur est lorsque je configure une sauvegarde et que j'ai de gros fichiers (par exemple des images) qui n'ont pas le même temps de modification. Il est BEAUCOUP plus rapide, l'accélération est de 163,26, pour synchroniser ces fichiers en utilisant le transfert delta sur mon système de fichiers local.--no-whole-file
(veuillez noter le double--
au début).La réponse directe à cette question est:
Utilisez l'
--no-W
indicateur pour forcer la compression delta, peu importe local ou distant.Mise à jour: Il semble qu'il y ait plus dans l'histoire. Le
delta compression
semble être activé uniquement entre le processus de réception et de transmission de rsync. Lors de la sortie du fichier vers le système de fichiers, ilrsync
peut toujours écrire le ou les fichiers entiers, même avec la compression delta activée.Voir l'enquête "Wakan Tanka" ici .
la source
--no-W
transférez toujours le dossier entier dans mon cas. Veuillez consulter unix.stackexchange.com/questions/291156/…Par défaut, rsync crée d'abord une nouvelle copie du fichier cible, puis la remplace, pour diverses raisons de sécurité. Vous pouvez remplacer cela en spécifiant
--inplace
avec--no-whole-file
. Cela indique à rsync d'effectuer une modification sur place du fichier cible, en acceptant les divers risques (généralement mineurs pour cette situation) comme indiqué dans la page de manuel.la source
Par défaut,
rsync
crée une copie du fichier à destination, puis remplace atomiquement l'original par la nouvelle copie. Cela se fait pour des raisons de sécurité. Ce que vous recherchez, c'est l'--inplace
option, qui nersync
modifiera que les parties du fichier de destination qui ont changé par rapport à la source.Pour le cas d'utilisation de l'OP, je recommande également de désactiver la pré-allocation, afin qu'une copie éparse puisse être synchronisée, ce qui sera beaucoup plus rapide. Pour les téléchargements, ne vous inquiétez pas de la fragmentation, sauf si vous utilisez un système de fichiers très ancien comme VFAT. Les fichiers multimédias en particulier ne sont pas lus à la performance maximale des supports de stockage, donc leur défragmentation est un effort inutile.
Pour copier votre répertoire de téléchargements avec parcimonie sur le volume de destination, je recommande ces indicateurs et opérations, dans cet ordre:
La première passe copiera peu de nouveaux fichiers vers la destination La deuxième passe mettra à jour les fichiers existants sur place, en copiant uniquement les modifications
Comme il effectue des copies delta clairsemées et sur place, vous pouvez l'exécuter à plusieurs reprises sans encourir beaucoup d'E / S supplémentaires. Même si vous avez 20 torrents en cours d'exécution simultanément, cela n'amplifiera pas les écritures à destination, ni ne déformera les volumes source / dest.
la source