Tar, perf : 1 gros fichier ou plusieurs petit

Résolu
IvyAlice Messages postés 379 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour à tous,

J'aimerais savoir si au niveau performance (temps, cpu, ram ) on a meilleur temps de faire un gros tar (par exemple de 300 Go) ou plusieurs plus petit ( 10 de 30 Go ) ?

J'ai essayé d'en faire l'expérience moi-même avec des fichiers de quelque dizaine de Mo. Mais regarder défilé la commande top pendant que tar travaille, ça n'a pas l'air fiable à 100%.
De plus les résultats ont été assez aléatoire ( sauf pour la ram, valeur tjr identique) et me donnaient l'impression que ça ne change rien d'appliquer l'une ou l'autre de ces technique.

Question complémentaire :
Si on vient à Gzipper le tar en même temps. Est-ce qu'à ce moment là des différences notable au niveau des performances surviennent ?

Merci pour vos avis et conseils

Ivy

3 réponses

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Bah en gros ceci est équivalent :

tar cvf repertoire.tar repertoire
gzip repertoire


(note que la première commande ne compresse rien, elle ne fait que "regrouper" les fichiers dans une archive)

... avec cette commande

tar cvzf repertoire.tar.gz repertoire


Il est clair que la commande gzip à un coup (la compression ne se fait pas de manière instantanée) et donc il est naturel que ne pas compresser soit plus rapide.

En fait soyons clairs, au delà de cette présentation intuitive, des opérations de compression et de décompression sont assez coûteuses en CPU (et en mémoire). Mais en terme d'espace disque le reste est incomparable.

Voici quelques benchmarks :
http://brej.org/compression/c_time.html

Bonne chance
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Voir la commande "time" pour évaluer les ressources d'une autre commande...
NOM
       time - Chronométrer ou évaluer les ressources employées par une commande simple

SYNOPSIS
       time [options] commande [arguments...]

DESCRIPTION
       La  fonction  time lance le programme représenté par la commande indiquée, avec les arguments fournis.  Lorsque la commande se termine, time affiche un message sur
       la sortie d'erreur contenant des statistiques sur l'exécution du programme.  Ces statistiques contiennent (i) le temps écoulé entre l'invocation et la  fin  de  la
       commande,  (ii)  le  temps  CPU  écoulé  en  mode  utilisateur (la somme des valeurs tms_utime et tms_cutime de la structure struct tms fournie par l'appel système
       times(2)), et (iii) le temps CPU passé en mode système (la somme des champs tms_stime et tms_cstime de la struct tms fournie par l'appel système times(2)).

0
IvyAlice Messages postés 379 Date d'inscription   Statut Membre Dernière intervention   32
 
Hello,
Merci pour vos réponses.
Oui je me suis également servi de time mais les résultats étaient vraiment étonnants genre
reproot
\- fich1
\ fich2

tar -cvf reproot -> il me donne entre 33 et 50 sec ( la machine sur laquelle je fais mes tests est une machine ou rien d'autre ne tourne)

Si je lance par contre un scripte qui tar d'abords fich1 puis fich2 , j'avais des valeurs genre 6 sec pour le premier fichier et 23 pour le second, ou 18 sec chacun ( pour des fichiers de même taille donc)

Le cpu variait entre 5 et 32 sec. dans le premier cas et entre 6 et 25 dans le second.( j'ai essayé 2-3 fois chacun)

Sinon je n'ai pas très bien compris ce 'temps processus' dans le time.


Oui, compresser prend plus longtemps . Je me suis mal exprimée.
Est-ce que du moment qu'on compresse un tar, on a des différences (niveau cpu/ram/temps total) entre si on compresse soit 1 gros tar de 300 Go , soit 10 tar de 30 Go . (ou alors si la compression travail de manière à , si il stock par exemple quelque part le fichier temporaire et que si du coup on compresse 1 seul gros fichier il remplit le disk ou quelque chose comme ça )
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Tar ne compresse pas.
tar -cvf reproot
Cette commande ne fait que réunir tout dans une archive sans aucune compression.

Il faut utiliser soit l'option z (gzip) soit j (bzip2) pour compresser

Et puis v c'est pour afficher à l'écran ce qui se passe, ce qui augmente aussi l'exécution de tar.
Fait un test pour voir
time tar cvf 
time tar cf 
0