Gentoo : Activer le multithread pour gzip et bzip2
Table des matières
Par défaut, les algorithmes gzip et bzip2, utilisables sous Linux via leurs binaires compressent en mono-thread. C'est à dire qu'un seul coeur du processeur est utilisé.
Il en est de même avec l'option associée de tar (-z pour gzip et -j pour bzip2)
Il est possible d'utiliser des programmes alternatifs pour compresser en multithreading :
- pigz pour gzip
- lbzip2 ou pbzip2 pour bzip2
Nous allons voir ici, comment sous Gentoo, remplacer gzip et bzip2 respectivement par pigz et lbzip2.
Ainsi, on pourra toujours invoquer les commandes :
- gzip, zcat, zgrep, -z de tar et tout sera redirigé sur pigz (qui s'utilise avec les mêmes options).
- bzip2, bzcat, bzgrep, -j de tar et tout sera redirigé sur lbzip2 (qui s'utilise avec les mêmes options).
Nous allons utiliser la méthode officielle qui remplace l'exécutable gzip et bzip2 par un lien symbolique vers pigz et lbzip2.
Ainsi, rien ne changera pour nos habitudes et commandes, mais les temps de compression et décompression seront grandement améliorés !
Pour gzip, on va utiliser le paquet virtuel app-alternatives/gzip qui va s'occuper de gérer les liens symboliques.
Pour cela, on va désactiver le USE FLAG "reference" qui est gzip traditionnel, et activer le USE FLAG pigz :
Ensuite, il suffit de réémerger le paquet :
Pour vérifier, on peut constater que /bin/gzip pointe sur /usr/bin/pigz :
Evidemment, pour revenir en arrière, supprimez la ligne dans package.use ajoutée précédemment OU désactivez le USE "pigz" et réactivez "reference"
Pour bzip2, on va utiliser le paquet virtuel app-alternatives/bzip2 qui va s'occuper de gérer les liens symboliques.
Pour cela, on va désactiver le USE FLAG "reference" qui est bzip2 traditionnel, et activer le USE FLAG lbzip2 :
Ensuite, il suffit de réémerger le paquet :
Pour vérifier, on peut constater que /bin/bzip2 pointe sur /usr/bin/lbzip2 :
Evidemment, pour revenir en arrière, supprimez la ligne dans package.use ajoutée précédemment OU désactivez le USE "lbzip2" et réactivez "reference"
Introduction
Par défaut, les algorithmes gzip et bzip2, utilisables sous Linux via leurs binaires compressent en mono-thread. C'est à dire qu'un seul coeur du processeur est utilisé.
Il en est de même avec l'option associée de tar (-z pour gzip et -j pour bzip2)
Il est possible d'utiliser des programmes alternatifs pour compresser en multithreading :
- pigz pour gzip
- lbzip2 ou pbzip2 pour bzip2
Nous allons voir ici, comment sous Gentoo, remplacer gzip et bzip2 respectivement par pigz et lbzip2.
Ainsi, on pourra toujours invoquer les commandes :
- gzip, zcat, zgrep, -z de tar et tout sera redirigé sur pigz (qui s'utilise avec les mêmes options).
- bzip2, bzcat, bzgrep, -j de tar et tout sera redirigé sur lbzip2 (qui s'utilise avec les mêmes options).
Nous allons utiliser la méthode officielle qui remplace l'exécutable gzip et bzip2 par un lien symbolique vers pigz et lbzip2.
Ainsi, rien ne changera pour nos habitudes et commandes, mais les temps de compression et décompression seront grandement améliorés !
Paramétrage du multithreading
Paramétrage GZIP
Pour gzip, on va utiliser le paquet virtuel app-alternatives/gzip qui va s'occuper de gérer les liens symboliques.
Pour cela, on va désactiver le USE FLAG "reference" qui est gzip traditionnel, et activer le USE FLAG pigz :
Code BASH :
echo "app-alternatives/gzip pigz -reference" >> /etc/portage/package.use/custom
Ensuite, il suffit de réémerger le paquet :
Code BASH :
emerge -av app-alternatives/gzip
Pour vérifier, on peut constater que /bin/gzip pointe sur /usr/bin/pigz :
Code BASH :
file /bin/gzip
Code TEXT :
/bin/gzip: symbolic link to ../usr/bin/pigz
Evidemment, pour revenir en arrière, supprimez la ligne dans package.use ajoutée précédemment OU désactivez le USE "pigz" et réactivez "reference"
Paramétrage BZIP2
Pour bzip2, on va utiliser le paquet virtuel app-alternatives/bzip2 qui va s'occuper de gérer les liens symboliques.
Pour cela, on va désactiver le USE FLAG "reference" qui est bzip2 traditionnel, et activer le USE FLAG lbzip2 :
Code BASH :
echo "app-alternatives/bzip2 lbzip2 -reference" >> /etc/portage/package.use/custom
Ensuite, il suffit de réémerger le paquet :
Code BASH :
emerge -av app-alternatives/bzip2
Pour vérifier, on peut constater que /bin/bzip2 pointe sur /usr/bin/lbzip2 :
Code BASH :
file /bin/bzip2
Code TEXT :
/bin/bzip2: symbolic link to ../usr/bin/lbzip2
Evidemment, pour revenir en arrière, supprimez la ligne dans package.use ajoutée précédemment OU désactivez le USE "lbzip2" et réactivez "reference"