<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Misc on slash-root.fr</title><link>https://beta.slash-root.fr/categories/misc/</link><description>Recent content in Misc on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Sun, 28 Sep 2025 03:57:47 +0200</lastBuildDate><atom:link href="https://beta.slash-root.fr/categories/misc/index.xml" rel="self" type="application/rss+xml"/><item><title>awaSCII+ Web : Quand l’encodage devient un art de vivre</title><link>https://beta.slash-root.fr/awascii-web-quand-lencodage-devient-un-art-de-vivre/</link><pubDate>Sun, 28 Sep 2025 03:55:27 +0200</pubDate><guid>https://beta.slash-root.fr/awascii-web-quand-lencodage-devient-un-art-de-vivre/</guid><description>&lt;img src="https://beta.slash-root.fr/awascii-web-quand-lencodage-devient-un-art-de-vivre/cover.png" alt="Featured image of post awaSCII+ Web : Quand l’encodage devient un art de vivre" /&gt;&lt;h2 id="préambule"&gt;&lt;a href="#pr%c3%a9ambule" class="header-anchor"&gt;&lt;/a&gt;Préambule
&lt;/h2&gt;&lt;p&gt;J'ai mis en ligne une interface web &lt;strong&gt;&lt;a href="https://awa.noobops.fr"&gt;awa.noobops.fr&lt;/a&gt;&lt;/strong&gt; pour le délicieux système d'encodage &lt;strong&gt;awaSCII+ v5.0.666&lt;/strong&gt; de Penthium2 BZHack. Parce que parfois, on a besoin de dire &amp;quot;Hello World!&amp;quot; avec classe.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; awa awa awa awawa awa awa awa , awa awa awa awawawawawa, awa awa awawa awa awa awa awa , awa awa awawa awa awa awa awa , awa awa awawa awa awawawa, awa awawawa awawa awa awa , awa awa awa awa awa awa awawa, awa awa awawa awa awawawa, awa awawa awawa awa awawa, awa awa awawa awa awa awa awa , awa awawa awa awawawa awa , awa awawawa awawawawa
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="le-projet-qui-fait-awa"&gt;&lt;a href="#le-projet-qui-fait-awa" class="header-anchor"&gt;&lt;/a&gt;Le projet qui fait &amp;quot;awa&amp;quot;
&lt;/h2&gt;&lt;p&gt;Pour ceux qui connaissent pas encore cette merveille, &lt;strong&gt;awaSCII+&lt;/strong&gt; c'est un système d'encodage qui transforme n'importe quel texte en variations de &amp;quot;awa&amp;quot; et &amp;quot;wa&amp;quot;. Développé par &lt;a href="https://github.com/penthium2/awaSCII_5.0.666"&gt;Penthium2 BZHack&lt;/a&gt;, c'est le genre de projet qui te fait comprendre que l'informatique, c'est avant tout de l'art.&lt;/p&gt;
&lt;h3 id="comment-ça-marche-"&gt;&lt;a href="#comment-%c3%a7a-marche-" class="header-anchor"&gt;&lt;/a&gt;Comment ça marche ?
&lt;/h3&gt;&lt;p&gt;L'algorithme est d'une beauté simple :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Caractère&lt;/strong&gt; → &lt;strong&gt;Index dans une table de 97 caractères&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Index&lt;/strong&gt; → &lt;strong&gt;Binaire 8 bits&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0&lt;/strong&gt; devient &lt;strong&gt;&amp;quot; awa &amp;quot;&lt;/strong&gt;, &lt;strong&gt;1&lt;/strong&gt; devient &lt;strong&gt;&amp;quot;wa&amp;quot;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Magie&lt;/strong&gt; : espaces → 💩, tabs → 💨, retours à la ligne → 🍆&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Le projet est toujours en développement à l'heure actuelle.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="pourquoi-une-interface-web-"&gt;&lt;a href="#pourquoi-une-interface-web-" class="header-anchor"&gt;&lt;/a&gt;Pourquoi une interface web ?
&lt;/h2&gt;&lt;p&gt;Les scripts Bash originaux (&lt;code&gt;awacoder.sh&lt;/code&gt; / &lt;code&gt;awadecode.sh&lt;/code&gt;) c'est cool, mais parfois on veut juste encoder/décoder rapidement sans sortir du navigateur. Et puis, ça manquait cruellement d'un bouton &amp;quot;Écouter&amp;quot; avec l'API Web Speech Synthesis.&lt;/p&gt;
&lt;h3 id="features-qui-claquent"&gt;&lt;a href="#features-qui-claquent" class="header-anchor"&gt;&lt;/a&gt;Features qui claquent
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100% compatible&lt;/strong&gt; avec les scripts Bash originaux&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design terminal rétro&lt;/strong&gt; qui fait plaisir aux yeux&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Raccourci &amp;quot;Ctrl+Entrée&amp;quot;&lt;/strong&gt; parce qu'on est des pros&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boutons de copie&lt;/strong&gt; intégrés (fini le Ctrl+A/Ctrl+C)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lecture audio&lt;/strong&gt; du résultat (parce que entendre &amp;quot;awa awa awawawawa&amp;quot; c'est magique)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Statistiques temps réel&lt;/strong&gt; d'encodage/décodage&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="le-mot-de-la-fin"&gt;&lt;a href="#le-mot-de-la-fin" class="header-anchor"&gt;&lt;/a&gt;Le mot de la fin
&lt;/h2&gt;&lt;p&gt;awaSCII+ Web c'est l'exemple parfait que l'informatique peut être fun, absurde et techniquement propre à la fois. C'est compatible avec l'original, ça marche sur mobile, et ça fait sourire.&lt;/p&gt;
&lt;p&gt;Alors la prochaine fois que vous voulez envoyer un message secret ou juste faire le malin, pensez awaSCII+ !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Liens utiles :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface web&lt;/strong&gt; : &lt;a href="https://awa.noobops.fr"&gt;awa.noobops.fr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source originale&lt;/strong&gt; : &lt;a href="https://github.com/penthium2/awaSCII_5.0.666"&gt;awaSCII_5.0.666&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;PS : Le site est aussi accessible via le menu de navigation. Parce qu'il faut bien que les gens puissent retrouver cette merveille technologique.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Libérez votre swap !</title><link>https://beta.slash-root.fr/liberez-votre-swap/</link><pubDate>Sun, 01 Dec 2024 06:09:15 +0100</pubDate><guid>https://beta.slash-root.fr/liberez-votre-swap/</guid><description>&lt;img src="https://beta.slash-root.fr/liberez-votre-swap/cover.png" alt="Featured image of post Libérez votre swap !" /&gt;&lt;h2 id="préambule"&gt;&lt;a href="#pr%c3%a9ambule" class="header-anchor"&gt;&lt;/a&gt;Préambule
&lt;/h2&gt;&lt;p&gt;Envie de libérer Britney ? Ou plutôt... votre swap ? 🎵&lt;/p&gt;
&lt;p&gt;Si vous cherchez à optimiser l'utilisation de votre mémoire virtuelle sur une machine Debian, vous êtes au bon endroit !&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 id="le-swappiness-cest-quoi-"&gt;&lt;a href="#le-swappiness-cest-quoi-" class="header-anchor"&gt;&lt;/a&gt;Le &lt;code&gt;swappiness&lt;/code&gt;, c&amp;rsquo;est quoi ?
&lt;/h3&gt;&lt;p&gt;Le &lt;code&gt;swappiness&lt;/code&gt; est un paramètre du kernel Linux qui contrôle la &amp;quot;proportion&amp;quot; du système à utiliser le swap. Une valeur faible favorise l'utilisation de la RAM, tandis qu'une valeur élevée incite à swapper rapidement sur le disque.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="quelques-commandes-essentielles"&gt;&lt;a href="#quelques-commandes-essentielles" class="header-anchor"&gt;&lt;/a&gt;Quelques commandes essentielles
&lt;/h2&gt;&lt;h3 id="1-vérifier-la-valeur-actuelle-du-swappiness"&gt;&lt;a href="#1-v%c3%a9rifier-la-valeur-actuelle-du-swappiness" class="header-anchor"&gt;&lt;/a&gt;1. Vérifier la valeur actuelle du &lt;code&gt;swappiness&lt;/code&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat /proc/sys/vm/swappiness
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-modifier-dynamiquement-le-swappiness"&gt;&lt;a href="#2-modifier-dynamiquement-le-swappiness" class="header-anchor"&gt;&lt;/a&gt;2. Modifier dynamiquement le &lt;code&gt;swappiness&lt;/code&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo sysctl vm.swappiness&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Cette modification n'est pas persistante et sera perdue au redémarrage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="3-rendre-la-configuration-persistante"&gt;&lt;a href="#3-rendre-la-configuration-persistante" class="header-anchor"&gt;&lt;/a&gt;3. Rendre la configuration persistante
&lt;/h3&gt;&lt;p&gt;Ajoutez ou modifiez la ligne suivante dans &lt;code&gt;/etc/sysctl.conf&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;vm.swappiness&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Appliquez ensuite la configuration :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo sysctl -p
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-comprendre-les-valeurs-du-swappiness"&gt;&lt;a href="#4-comprendre-les-valeurs-du-swappiness" class="header-anchor"&gt;&lt;/a&gt;4. Comprendre les valeurs du &lt;code&gt;swappiness&lt;/code&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100&lt;/strong&gt; : Le système swap intensément.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0&lt;/strong&gt; : Swap uniquement en cas de RAM complètement saturée.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Défaut&lt;/strong&gt; : Généralement &lt;strong&gt;60&lt;/strong&gt; sur Debian.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-désactiver-et-réactiver-le-swap"&gt;&lt;a href="#5-d%c3%a9sactiver-et-r%c3%a9activer-le-swap" class="header-anchor"&gt;&lt;/a&gt;5. Désactiver et réactiver le swap
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo swapoff -a &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo swapon -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Assurez-vous que la RAM disponible est suffisante pour accueillir les données du swap avant de désactiver ce dernier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="6-identifier-les-processus-utilisant-le-swap"&gt;&lt;a href="#6-identifier-les-processus-utilisant-le-swap" class="header-anchor"&gt;&lt;/a&gt;6. Identifier les processus utilisant le swap
&lt;/h3&gt;&lt;p&gt;Pour examiner les processus gourmands en swap, utilisez cette commande :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; file in /proc/*/status ; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; awk &lt;span style="color:#e6db74"&gt;&amp;#39;/VmSwap|Name/{printf $2 &amp;#34; &amp;#34; $3}END{ print &amp;#34;&amp;#34;}&amp;#39;&lt;/span&gt; $file; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;done&lt;/span&gt; | &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sort -k &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; -n -r | less
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr /&gt;
&lt;h2 id="automatisation-avec-un-script-bash"&gt;&lt;a href="#automatisation-avec-un-script-bash" class="header-anchor"&gt;&lt;/a&gt;Automatisation avec un script Bash
&lt;/h2&gt;&lt;p&gt;Pour simplifier la gestion du swap, voici un script bash prêt à l'emploi :&lt;/p&gt;
&lt;h3 id="script--free-swapsh"&gt;&lt;a href="#script--free-swapsh" class="header-anchor"&gt;&lt;/a&gt;Script : &lt;code&gt;free-swap.sh&lt;/code&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_command&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; $? -ne &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Erreur lors de l&amp;#39;exécution de la commande: &lt;/span&gt;$1&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;free_data&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;free&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_command &lt;span style="color:#e6db74"&gt;&amp;#34;free&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mem_data&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep &lt;span style="color:#e6db74"&gt;&amp;#39;Mem:&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;free_mem&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $4}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;buffers&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $6}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cache&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $7}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;total_free&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$((&lt;/span&gt;free_mem &lt;span style="color:#f92672"&gt;+&lt;/span&gt; buffers &lt;span style="color:#f92672"&gt;+&lt;/span&gt; cache&lt;span style="color:#66d9ef"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep -q &lt;span style="color:#e6db74"&gt;&amp;#39;Échange:&amp;#39;&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; used_swap&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep &lt;span style="color:#e6db74"&gt;&amp;#39;Échange:&amp;#39;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; used_swap&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep &lt;span style="color:#e6db74"&gt;&amp;#39;Swap:&amp;#39;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo -e &lt;span style="color:#e6db74"&gt;&amp;#34;Free memory:\t&lt;/span&gt;$total_free&lt;span style="color:#e6db74"&gt; kB (&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$((&lt;/span&gt;total_free &lt;span style="color:#f92672"&gt;/&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;))&lt;/span&gt;&lt;span style="color:#e6db74"&gt; MB)\nUsed swap:\t&lt;/span&gt;$used_swap&lt;span style="color:#e6db74"&gt; kB (&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$((&lt;/span&gt;used_swap &lt;span style="color:#f92672"&gt;/&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;))&lt;/span&gt;&lt;span style="color:#e6db74"&gt; MB)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; $used_swap -eq &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Félicitations ! Aucun swap n&amp;#39;est utilisé.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;elif&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; $used_swap -lt $total_free &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Libération du swap...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sudo swapoff -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_command &lt;span style="color:#e6db74"&gt;&amp;#34;swapoff&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sudo swapon -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_command &lt;span style="color:#e6db74"&gt;&amp;#34;swapon&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Pas assez de mémoire libre pour libérer le swap. Arrêt.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="instructions-"&gt;&lt;a href="#instructions-" class="header-anchor"&gt;&lt;/a&gt;Instructions :
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Enregistrez le script dans un fichier, par exemple : &lt;code&gt;free-swap.sh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rendez-le exécutable :&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod u+x free-swap.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;Exécutez-le :&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./free-swap.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Ne pas utiliser ce script si &lt;strong&gt;ZRAM&lt;/strong&gt; est activé sur votre système, car cela pourrait entraîner des comportements inattendus.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id="conclusion"&gt;&lt;a href="#conclusion" class="header-anchor"&gt;&lt;/a&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Vous venez de découvrir comment optimiser la gestion du swap sous Debian. Que ce soit via des commandes ou un script Bash, vous êtes désormais armé pour reprendre le contrôle de votre mémoire virtuelle.&lt;/p&gt;
&lt;p&gt;Et surtout, souvenez-vous : le swap, c'est bien... mais la RAM, c'est mieux ! 😉&lt;/p&gt;</description></item><item><title>Compression Multithreading : pigz (gzip) &amp; pbzip2 (bzip2)</title><link>https://beta.slash-root.fr/compression-multithreading-pigz-gzip-pbzip2-bzip2/</link><pubDate>Mon, 08 Jul 2024 15:05:42 +0200</pubDate><guid>https://beta.slash-root.fr/compression-multithreading-pigz-gzip-pbzip2-bzip2/</guid><description>&lt;img src="https://beta.slash-root.fr/compression-multithreading-pigz-gzip-pbzip2-bzip2/cover.jpg" alt="Featured image of post Compression Multithreading : pigz (gzip) &amp; pbzip2 (bzip2)" /&gt;&lt;h2 id="préambule"&gt;&lt;a href="#pr%c3%a9ambule" class="header-anchor"&gt;&lt;/a&gt;Préambule
&lt;/h2&gt;&lt;p&gt;Dans le monde de la gestion des fichiers et des données, l'efficacité des outils de compression est essentielle, surtout à l'ère des volumes de données croissants. Les formats de compression classiques, &lt;code&gt;gzip&lt;/code&gt; et &lt;code&gt;bzip2&lt;/code&gt;, bien que robustes et largement utilisés, peuvent devenir des goulets d'étranglement sur des systèmes modernes où la puissance de traitement parallèle est sous-exploitée. C'est dans ce contexte que les outils &lt;code&gt;pigz&lt;/code&gt; (Parallel Implementation of gzip) et &lt;code&gt;pbzip2&lt;/code&gt; (Parallel bzip2) apportent une révolution significative en offrant une compression multithreading.&lt;/p&gt;
&lt;p&gt;Cet article explore ces deux outils puissants, en les comparant aux utilitaires classiques, et en démontrant leur utilisation efficace avec &lt;code&gt;tar&lt;/code&gt;, grâce à son option &lt;code&gt;-I&lt;/code&gt; qui permet de spécifier un programme de compression externe. J’aborderai les avantages du multithreading pour la compression des données, présenterai des exemples pratiques d'utilisation, et fournirai des conseils pour optimiser vos flux de travail de gestion des fichiers en tirant parti de la parallélisation.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="introduction-à-la-compression-multithreading"&gt;&lt;a href="#introduction-%c3%a0-la-compression-multithreading" class="header-anchor"&gt;&lt;/a&gt;Introduction à la compression multithreading
&lt;/h2&gt;&lt;h3 id="contexte-et-importance-de-la-compression-des-fichiers"&gt;&lt;a href="#contexte-et-importance-de-la-compression-des-fichiers" class="header-anchor"&gt;&lt;/a&gt;Contexte et importance de la compression des fichiers
&lt;/h3&gt;&lt;p&gt;La compression des fichiers est cruciale pour économiser l'espace de stockage et réduire la bande passante lors des transferts de fichiers. Les outils classiques comme &lt;code&gt;gzip&lt;/code&gt; et &lt;code&gt;bzip2&lt;/code&gt; sont largement utilisés pour leur efficacité en termes de taux de compression et de compatibilité. Toutefois, sur des systèmes multicœurs modernes, ces outils ne tirent pas parti de la puissance disponible car ils ne fonctionnent que sur un seul thread.&lt;/p&gt;
&lt;h3 id="limites-des-outils-traditionnels-gzip-et-bzip2"&gt;&lt;a href="#limites-des-outils-traditionnels-gzip-et-bzip2" class="header-anchor"&gt;&lt;/a&gt;Limites des outils traditionnels gzip et bzip2
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Single-threaded&lt;/strong&gt; : &lt;code&gt;gzip&lt;/code&gt; et &lt;code&gt;bzip2&lt;/code&gt; ne peuvent exploiter qu'un seul cœur, ce qui limite leur vitesse de compression sur les systèmes modernes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt; : Bien que &lt;code&gt;gzip&lt;/code&gt; soit rapide pour la compression simple, il ne compresse pas autant que &lt;code&gt;bzip2&lt;/code&gt;. &lt;code&gt;bzip2&lt;/code&gt;, quant à lui, offre une meilleure compression mais à une vitesse plus lente.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="présentation-de-pigz"&gt;&lt;a href="#pr%c3%a9sentation-de-pigz" class="header-anchor"&gt;&lt;/a&gt;Présentation de pigz
&lt;/h2&gt;&lt;h3 id="fonctionnalités-et-avantages"&gt;&lt;a href="#fonctionnalit%c3%a9s-et-avantages" class="header-anchor"&gt;&lt;/a&gt;Fonctionnalités et avantages
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pigz&lt;/code&gt; (Parallel Implementation of gzip) est une version multi-thread de &lt;code&gt;gzip&lt;/code&gt;. Il utilise plusieurs cœurs pour accélérer la compression et la décompression tout en maintenant la compatibilité avec le format &lt;code&gt;gzip&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multithreading&lt;/strong&gt; : Exploite plusieurs cœurs pour améliorer la vitesse de compression.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibilité&lt;/strong&gt; : Produit des fichiers compatibles avec &lt;code&gt;gzip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Options de compression&lt;/strong&gt; : Offre des options pour ajuster le nombre de threads, le niveau de compression, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="installation-et-configuration"&gt;&lt;a href="#installation-et-configuration" class="header-anchor"&gt;&lt;/a&gt;Installation et configuration
&lt;/h3&gt;&lt;p&gt;Sur une distribution Linux (ex. Debian) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install pigz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="exemples-dutilisation-avec-tar-et-loption--i"&gt;&lt;a href="#exemples-dutilisation-avec-tar-et-loption--i" class="header-anchor"&gt;&lt;/a&gt;Exemples d&amp;rsquo;utilisation avec tar et l&amp;rsquo;option &lt;code&gt;-I&lt;/code&gt;
&lt;/h3&gt;&lt;h4 id="compression"&gt;&lt;a href="#compression" class="header-anchor"&gt;&lt;/a&gt;Compression
&lt;/h4&gt;&lt;p&gt;Pour compresser une archive &lt;code&gt;tar&lt;/code&gt; avec &lt;code&gt;pigz&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -cvI pigz -f archive.tar.gz dossier/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="décompression"&gt;&lt;a href="#d%c3%a9compression" class="header-anchor"&gt;&lt;/a&gt;Décompression
&lt;/h4&gt;&lt;p&gt;Pour décompresser une archive &lt;code&gt;tar.gz&lt;/code&gt; avec &lt;code&gt;pigz&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -xvI pigz -f archive.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr /&gt;
&lt;h2 id="présentation-de-pbzip2"&gt;&lt;a href="#pr%c3%a9sentation-de-pbzip2" class="header-anchor"&gt;&lt;/a&gt;Présentation de pbzip2
&lt;/h2&gt;&lt;h3 id="fonctionnalités-et-avantages-1"&gt;&lt;a href="#fonctionnalit%c3%a9s-et-avantages-1" class="header-anchor"&gt;&lt;/a&gt;Fonctionnalités et avantages
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pbzip2&lt;/code&gt; (Parallel bzip2) est une version multi-thread de &lt;code&gt;bzip2&lt;/code&gt; qui utilise plusieurs cœurs pour accélérer la compression et la décompression. Il produit des fichiers compatibles avec le format &lt;code&gt;bzip2&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multithreading&lt;/strong&gt; : Exploite plusieurs cœurs pour améliorer la vitesse de compression.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibilité&lt;/strong&gt; : Produit des fichiers compatibles avec &lt;code&gt;bzip2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficacité de compression&lt;/strong&gt; : Offre généralement une meilleure compression que &lt;code&gt;gzip&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="installation-et-configuration-1"&gt;&lt;a href="#installation-et-configuration-1" class="header-anchor"&gt;&lt;/a&gt;Installation et configuration
&lt;/h3&gt;&lt;p&gt;Sur une distribution Linux (ex. Debian) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install pbzip2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="exemples-dutilisation-avec-tar-et-loption--i-1"&gt;&lt;a href="#exemples-dutilisation-avec-tar-et-loption--i-1" class="header-anchor"&gt;&lt;/a&gt;Exemples d&amp;rsquo;utilisation avec tar et l&amp;rsquo;option &lt;code&gt;-I&lt;/code&gt;
&lt;/h3&gt;&lt;h4 id="compression-1"&gt;&lt;a href="#compression-1" class="header-anchor"&gt;&lt;/a&gt;Compression
&lt;/h4&gt;&lt;p&gt;Pour compresser une archive &lt;code&gt;tar&lt;/code&gt; avec &lt;code&gt;pbzip2&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -cvI pbzip2 -f archive.tar.bz2 dossier/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="décompression-1"&gt;&lt;a href="#d%c3%a9compression-1" class="header-anchor"&gt;&lt;/a&gt;Décompression
&lt;/h4&gt;&lt;p&gt;Pour décompresser une archive &lt;code&gt;tar.bz2&lt;/code&gt; avec &lt;code&gt;pbzip2&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -xvI pbzip2 -f archive.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr /&gt;
&lt;h2 id="comparaison-des-performances"&gt;&lt;a href="#comparaison-des-performances" class="header-anchor"&gt;&lt;/a&gt;Comparaison des performances
&lt;/h2&gt;&lt;h3 id="test-de-performance--gzip-vs-pigz-bzip2-vs-pbzip2"&gt;&lt;a href="#test-de-performance--gzip-vs-pigz-bzip2-vs-pbzip2" class="header-anchor"&gt;&lt;/a&gt;Test de performance : gzip vs pigz, bzip2 vs pbzip2
&lt;/h3&gt;&lt;p&gt;Pour évaluer les performances, j’ai compressé et décompressé un dossier de 10 Go de fichiers aléatoires avec &lt;code&gt;gzip&lt;/code&gt;, &lt;code&gt;pigz&lt;/code&gt;, &lt;code&gt;bzip2&lt;/code&gt;, et &lt;code&gt;pbzip2&lt;/code&gt;. Ces tests ont été réalisés sur une machine équipée d’un processeur AMD Ryzen 7 7700X @ 5.573GHz avec 16 threads.&lt;/p&gt;
&lt;h4 id="résultats"&gt;&lt;a href="#r%c3%a9sultats" class="header-anchor"&gt;&lt;/a&gt;Résultats
&lt;/h4&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Outil&lt;/th&gt;
&lt;th&gt;Temps de Compression&lt;/th&gt;
&lt;th&gt;Temps de Décompression&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;gzip&lt;/td&gt;
&lt;td&gt;170 sec&lt;/td&gt;
&lt;td&gt;25 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pigz&lt;/td&gt;
&lt;td&gt;18 sec&lt;/td&gt;
&lt;td&gt;9 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bzip2&lt;/td&gt;
&lt;td&gt;565 sec&lt;/td&gt;
&lt;td&gt;308 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pbzip2&lt;/td&gt;
&lt;td&gt;68 sec&lt;/td&gt;
&lt;td&gt;30 sec&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="analyse-des-résultats-et-recommandations"&gt;&lt;a href="#analyse-des-r%c3%a9sultats-et-recommandations" class="header-anchor"&gt;&lt;/a&gt;Analyse des résultats et recommandations
&lt;/h3&gt;&lt;p&gt;Les outils multithreading &lt;code&gt;pigz&lt;/code&gt; et &lt;code&gt;pbzip2&lt;/code&gt; montrent une nette amélioration par rapport à leurs homologues single-threaded, surtout sur des systèmes avec plusieurs cœurs disponibles. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pour une compression rapide&lt;/strong&gt; : Utilisez &lt;code&gt;pigz&lt;/code&gt; si la vitesse est prioritaire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pour une compression plus efficace&lt;/strong&gt; : Utilisez &lt;code&gt;pbzip2&lt;/code&gt; si un meilleur taux de compression est nécessaire, tout en profitant d'une vitesse accrue par rapport à &lt;code&gt;bzip2&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="optimisations"&gt;&lt;a href="#optimisations" class="header-anchor"&gt;&lt;/a&gt;Optimisations
&lt;/h2&gt;&lt;h3 id="conseils-pour-optimiser-les-opérations-de-compression"&gt;&lt;a href="#conseils-pour-optimiser-les-op%c3%a9rations-de-compression" class="header-anchor"&gt;&lt;/a&gt;Conseils pour optimiser les opérations de compression
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ajuster le Nombre de Threads&lt;/strong&gt; : Utilisez les options &lt;code&gt;-p&lt;/code&gt; de &lt;code&gt;pigz&lt;/code&gt; et &lt;code&gt;-p&lt;/code&gt; de &lt;code&gt;pbzip2&lt;/code&gt; pour ajuster le nombre de threads en fonction du nombre de cœurs disponibles.&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pigz -p &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt; -c fichier &amp;gt; fichier.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pbzip2 -p8 fichier
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Combinaison avec tar&lt;/strong&gt; : Utilisez l'option &lt;code&gt;-I&lt;/code&gt; de &lt;code&gt;tar&lt;/code&gt; pour spécifier le programme de compression, simplifiant ainsi les commandes complexes.&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -cvI &lt;span style="color:#e6db74"&gt;&amp;#34;pigz -p 4&amp;#34;&lt;/span&gt; -f archive.tar.gz dossier/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Surveiller l'Utilisation des Ressources&lt;/strong&gt; : Utilisez des outils comme &lt;code&gt;htop&lt;/code&gt; ou &lt;code&gt;top&lt;/code&gt; pour surveiller l'utilisation des ressources et ajuster les paramètres de compression en conséquence.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="conclusion"&gt;&lt;a href="#conclusion" class="header-anchor"&gt;&lt;/a&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;La compression multithreading, grâce à des outils comme &lt;code&gt;pigz&lt;/code&gt; et &lt;code&gt;pbzip2&lt;/code&gt;, représente une avancée significative par rapport aux méthodes traditionnelles. En exploitant les capacités des systèmes multicœurs, ces outils offrent des performances de compression et de décompression bien supérieures. Que vous ayez besoin de rapidité avec &lt;code&gt;pigz&lt;/code&gt; ou d'une compression plus efficace avec &lt;code&gt;pbzip2&lt;/code&gt;, intégrer ces outils dans vos flux de travail peut transformer la gestion des fichiers et des archives, rendant vos processus plus efficaces et adaptés aux environnements modernes.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="références"&gt;&lt;a href="#r%c3%a9f%c3%a9rences" class="header-anchor"&gt;&lt;/a&gt;Références
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://zlib.net/pigz/"&gt;Documentation de pigz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://compression.ca/pbzip2/"&gt;Documentation de pbzip2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gnu.org/software/tar/manual/tar.html"&gt;Documentation GNU tar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>