Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1727 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  compression/concatenation/vitesse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

compression/concatenation/vitesse

n°1310120
toutsec
Posté le 18-04-2012 à 18:20:38  profilanswer
 

Bonjour a tous,
Je fais un nouveau sujet car effectivement, cela ne sert a rien de polluer le topic Ubuntu avec une question d'ordre general.

 

Je cherche a effectuer une compression tres rapide de 3500fichiers de 4mb (14gb). La taille finale n'est que secondaire (pas trop quand meme, le max etant environ de 1gb par bunch de data) apres la vitesse.

 

J'ai fais :

tar cf - listefichiers | gzip -c1 test.tar.gz


qui me prend 1min30 pour une taille de 65mb.
J'ai tente de faire ca en deux etapes pour voir la difference de temps

tar cf test.tar listefichiers puis gzip -c1 test.tar.gz test.tar


Ici je ne comprends pas pourquoi l'operation tar prend en elle meme bien plus de temps que 1min30.

 

Bref, si vous avez des suggestions sachant que j'ai a disposition une suse 10.3 (systeme completement inconnu pour moi et que je ne peux pas mettre a jour sauf si le paquet que je dois installer a toutes les dependances deja installees) assez vieille.

 

Je vous remercie!

Message cité 1 fois
Message édité par toutsec le 18-04-2012 à 18:21:50
mood
Publicité
Posté le 18-04-2012 à 18:20:38  profilanswer
 

n°1310124
o'gure
Modérateur
Multi grognon de B_L
Posté le 18-04-2012 à 18:45:57  profilanswer
 

D'un point de vue hardware, t'es multi-core ?

n°1310125
toutsec
Posté le 18-04-2012 à 18:48:05  profilanswer
 

J'ai un xeon e5530 8 core

n°1310126
o'gure
Modérateur
Multi grognon de B_L
Posté le 18-04-2012 à 18:54:07  profilanswer
 

T'as moyen de paralléliser les choses alors, d'un point de vue compression.
Je ne sais pas si tu as pbzip2 sur ta suse...
 
sinon avec gzip via du scripting tu as moyen d'améliorer les choses vu que tu dois faire plusieurs bunch. A voir si ce n'est pas le disque qui est le goulot d'étranglement

n°1310128
toutsec
Posté le 18-04-2012 à 19:01:27  profilanswer
 

Le disque est un SAS 15000 rpm 6gbits/s.
 
Je crois avoir reussi a compiler xz. Je vais voir ce que ca donne.

n°1310131
toutsec
Posté le 18-04-2012 à 19:20:35  profilanswer
 

Bon bah xz -z0 est plus lent que

tar cf - listefichiers | gzip -c1 test.tar.gz

n°1310133
toutsec
Posté le 18-04-2012 à 20:34:48  profilanswer
 

Si tu as une piste pour parralléliser une compression avec gzip, je suis preneur.

n°1310136
Mjules
Modérateur
Parle dans le vide
Posté le 18-04-2012 à 21:09:29  profilanswer
 

toutsec a écrit :

Bonjour a tous,
Je fais un nouveau sujet car effectivement, cela ne sert a rien de polluer le topic Ubuntu avec une question d'ordre general.

 

Je cherche a effectuer une compression tres rapide de 3500fichiers de 4mb (14gb). La taille finale n'est que secondaire (pas trop quand meme, le max etant environ de 1gb par bunch de data) apres la vitesse.

 

J'ai fais :

tar cf - listefichiers | gzip -c1 test.tar.gz


qui me prend 1min30 pour une taille de 65mb.
J'ai tente de faire ca en deux etapes pour voir la difference de temps

tar cf test.tar listefichiers puis gzip -c1 test.tar.gz test.tar


Ici je ne comprends pas pourquoi l'operation tar prend en elle meme bien plus de temps que 1min30.

 

Bref, si vous avez des suggestions sachant que j'ai a disposition une suse 10.3 (systeme completement inconnu pour moi et que je ne peux pas mettre a jour sauf si le paquet que je dois installer a toutes les dependances deja installees) assez vieille.

 

Je vous remercie!

 

problème de disque amha, dans le premier cas, tu écris le fichier après compression, dans le 2°, tu écris le fichier avant compression et ensuite tu le compresses.

 

Tu devrais regarder si 7z (paquet p7zip) est pas plus rapide que gzip, je sais que son successeurs (lzma ou xz) l'est souvent quand il est utilisé avec un faible niveau de compression.et ça gère le multithread directement.

 

EDIT : arf, j'avais pas vu le dernier post.


Message édité par Mjules le 18-04-2012 à 21:10:10

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°1310159
toutsec
Posté le 19-04-2012 à 09:58:53  profilanswer
 

J'essaie de compiler pigz.

n°1310208
Nukolau
Posté le 19-04-2012 à 16:36:07  profilanswer
 

Sous linux la commande tar permet souvent de compresser directement via une option (en général z pour gzip). Ca reste néanmoins l'équivalent du tar | gzip, c'ets juste plus court à écrire :

 
Code :
  1. tar zcf test.tgz listefichiers
 

Et comme dit Mjules, la différence de temps entre les deux méthodes vient bien de l'I/O disque. Dans ton deuxième exemple tu écris la version non compressé sur le disque, puis tu compresses à côté, puis tu supprime la version non compressé, alors que dans l'autre cas tu écrit directement la version compressé.

 

Pour accélérer les choses, il faudrait voir d'où vient le problème. Durant l'opération, il faut voir si tes procs sont en "wait I/O" ou en "user". Si c'est en Wait I/O, a part utiliser 2 disques différents tu ne pourras pas faire grand chose. Si c'est en temps User effectivement changer d'algo de compression pourra réduire ton temps de compression

Message cité 1 fois
Message édité par Nukolau le 19-04-2012 à 16:42:41
mood
Publicité
Posté le 19-04-2012 à 16:36:07  profilanswer
 

n°1310299
e_esprit
Posté le 20-04-2012 à 14:13:42  profilanswer
 

Nukolau a écrit :

Sous linux la commande tar permet souvent de compresser directement via une option (en général z pour gzip). Ca reste néanmoins l'équivalent du tar | gzip, c'ets juste plus court à écrire :

 
Code :
  1. tar zcf test.tgz listefichiers




Oui mais tar ne permet pas alors de spécifier l'option de vitesse (-1 de gzip) :D

Nukolau a écrit :


Et comme dit Mjules, la différence de temps entre les deux méthodes vient bien de l'I/O disque. Dans ton deuxième exemple tu écris la version non compressé sur le disque, puis tu compresses à côté, puis tu supprime la version non compressé, alors que dans l'autre cas tu écrit directement la version compressé.

 

Pour accélérer les choses, il faudrait voir d'où vient le problème. Durant l'opération, il faut voir si tes procs sont en "wait I/O" ou en "user". Si c'est en Wait I/O, a part utiliser 2 disques différents tu ne pourras pas faire grand chose. Si c'est en temps User effectivement changer d'algo de compression pourra réduire ton temps de compression


Il faudrait déjà voir si le simple fait de lire les données et de les "tar-iser" n'est pas ce qui prend le plus de temps.
Pour se faire il suffit de balancer la sortie de tar sur /dev/null
tar -cf /dev/null /le/dossier/de/test

 

Si ça prends pas loin de 1m30, y a pas grand chose à faire pour améliorer la chose, c'est les IO en lecture [:spamafote]


Message édité par e_esprit le 20-04-2012 à 14:19:04

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1319236
Profil sup​primé
Posté le 04-09-2012 à 06:15:17  answer
 

Je ne sais pas pour suse, mais je sais que sous arch /tmp est monté en ram donc avec des temps d'accès bien sympathiques.
En utilisant mktemp, tu pourrais du coup créer ton .tgz dans la ram, ce qui te permettrait d'éviter les écritures disques, c'est déjà ça.

Code :
  1. out=`mktemp`
  2. tar cf - listefichiers | gzip -c1 $out
  3. mv $out test.tgz


L'inconvénient c'est que la ram a une taille assez limitée... si j'ai compris les .tgz font 1Go, et vu le processeur dont tu disposes, tu dois bien avoir 1go de ram de libre :D
Avec 2Go de ram, j'ai 1Go dispo pour /tmp (d'après df)

 


J'ai fait un petit test sur mon pc :

Code :
  1. dd if=/dev/zero of=tmp.CRVSVZWLe8 bs=100M count=5
  2. 5+0 enregistrements lus
  3. 5+0 enregistrements écrits
  4. 524288000 octets (524 MB) copiés, 0,503268 s, 1,0 GB/s


Je peux pas me vanter d'avoir cette vitesse sur mes disques  :o

 


EDIT: je viens de me rendre compte de la date du dernier message, je range la pelle...


Message édité par Profil supprimé le 04-09-2012 à 06:17:55
n°1319268
toutsec
Posté le 04-09-2012 à 20:07:25  profilanswer
 

Je note quand même :jap:

n°1319485
lecbee
Posté le 08-09-2012 à 20:40:39  profilanswer
 

Tu peux utiliser "iotop" pour voir le débit des I/O disques.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  compression/concatenation/vitesse

 

Sujets relatifs
limiter la vitesse de telechargementCompression (cryptée) et copie scp à la volée
VM Xen et vitesse d'écriture lamentable sur des imports NFSVitesse CPU Bizarre
Contrôler la vitesse des ventillateurs sous linuxXubuntu VS Arch sur ancien PC pour gagner un peu de vitesse
QNAP TS 219P : Vitesse d'ecritureCherche logiciel pour réguler la vitesse du ventilo d'une carte ATI
Vitesse de transfert faible entre deux disques durs, need help.[ubuntu] Vitesse du pointeur?
Plus de sujets relatifs à : compression/concatenation/vitesse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR