Actuellement, je cours tar czf
pour combiner des fichiers de sauvegarde. Les fichiers se trouvent dans un répertoire spécifique.
Mais le nombre de fichiers augmente. L'utilisation tzr czf
prend trop de temps (plus de 20 minutes et compter).
J'ai besoin de combiner les fichiers plus rapidement et de manière évolutive.
J'ai trouvé genisoimage
, readom
et mkisofs
. Mais je ne sais pas lequel est le plus rapide et quelles sont les limitations pour chacun d'eux.
tar
entraîne une surcharge importante, la lecture des fichiers est l'opération coûteuse ici. Vous devez soit modifier la façon dont vos fichiers sont stockés, soit utiliser une approche radicalement différente (copier le système de fichiers dans son ensemble). Nous ne pouvons pas vous aider beaucoup sans savoir comment vos fichiers sont organisés.Réponses:
Vous devez vérifier si la plupart de votre temps est consacré au processeur ou aux E / S. Quoi qu'il en soit, il existe des moyens de l'améliorer:
A: ne pas compresser
Vous n'avez pas mentionné la « compression » dans votre liste d'exigences , alors essayez laisser tomber le « z » de votre liste d'arguments:
tar cf
. Cela pourrait accélérer un peu les choses.Il existe d'autres techniques pour accélérer le processus, comme utiliser "-N" pour ignorer les fichiers que vous avez déjà sauvegardés auparavant.
B: sauvegarder toute la partition avec dd
Sinon, si vous sauvegardez une partition entière, prenez plutôt une copie de l'image disque entière. Cela permettrait d'économiser du traitement et de beaucoup de temps de recherche de tête de disque.
tar
et tout autre programme travaillant à un niveau supérieur a pour surcharge de devoir lire et traiter les entrées de répertoire et les inodes pour trouver où se trouve le contenu du fichier et pour effectuer plus de recherches sur le disque principal , en lisant chaque fichier à un endroit différent du disque.Pour sauvegarder les données sous-jacentes beaucoup plus rapidement, utilisez:
dd bs=16M if=/dev/sda1 of=/another/filesystem
(Cela suppose que vous n'utilisez pas RAID, ce qui peut changer un peu les choses)
la source
pigz
s'il existe dans le système plus d'un processeur.Pour répéter ce que les autres ont dit: nous devons en savoir plus sur les fichiers en cours de sauvegarde. Je vais aller avec quelques hypothèses ici.
Ajouter au fichier tar
Si des fichiers sont uniquement ajoutés aux répertoires (c'est-à-dire qu'aucun fichier n'est supprimé), assurez-vous de les ajouter au fichier tar existant plutôt que de le recréer à chaque fois. Vous pouvez le faire en spécifiant le nom de fichier d'archive existant dans votre
tar
commande au lieu d'un nouveau (ou en supprimant l'ancien).Écrire sur un autre disque
La lecture à partir du même disque sur lequel vous écrivez peut réduire les performances. Essayez d'écrire sur un autre disque pour répartir la charge d'E / S. Si le fichier d'archive doit se trouver sur le même disque que les fichiers d'origine, déplacez-le ensuite.
Ne pas compresser
Je répète juste ce que @Yves a dit. Si vos fichiers de sauvegarde sont déjà compressés, il n'est pas nécessaire de compresser à nouveau. Vous perdrez simplement des cycles CPU.
la source
Utiliser tar avec la crompression lz4 comme dans
vous offre le meilleur des deux mondes (plutôt bonne compression ET vitesse). Attendez-vous à un taux de compression d'environ 3 même si vos données contiennent des fichiers binaires.
Lectures complémentaires: comparaison des algorithmes de compression Comment tarer avec lz4
la source
Je suis surpris que personne ne mentionne le vidage et la restauration. Ce sera beaucoup plus rapide que dd si vous avez de l'espace libre dans le système de fichiers.
Notez que selon le système de fichiers en question, vous pouvez avoir besoin de différents outils:
Notez que certains programmes n'ont pas de compression intégrée (tous sauf dump) - dirigez-vous vers stdout et utilisez pigz au besoin. ;-)
la source