zRam – Un kernel module qui peut être utile
Si vous possédez une machine récente embarquant beaucoup de mémoire vive, zRam (ex Compcache) est un module présent dans le noyau Linux dont vous n’aurez sans doute pas à vous préoccuper. En revanche si vous tournez sur un vieux clou et que vous sentez qu’il rame un peu (oui je sais elle est facile celle-là), vous pouvez tenter le coup et essayer d’optimiser un peu votre mémoire vive.
Pour ceux qui ne le savent pas encore les fameuses barrettes de RAM (Random Acces Memory) présentes dans vos ordinateurs, permettent le stockage temporaire de certaines informations afin que votre système puisse y accéder plus rapidement. Quand vous lancez un programme par exemple, celui-ci se charge dans la mémoire vive et pourra au besoin être rappelé et relancé plus vite. C’est très intéressant dans la mesure où l’accès à la mémoire vive est plus rapide que sur un disque dur traditionnel, car contrairement à vos barrettes de RAM celui-ci fonctionne à l’aide d’éléments mécaniques. Le petit bras que vous entendez grattouiller quand vous bossez. En revanche quand une certaine quantité de mémoire vive est occupée son contenu va être déplacé sur le disque dur, qui va alors commencer à swapper. Une zone de celui-ci, le swap, est entièrement dédiée à cette tâche.
Si vous avez bien suivi vous comprenez qu’à se stade vous allez perdre un peu en performances et qu’il peut être intéressant d’optimiser votre RAM afin que celle-ci dump le plus tard possible vers le swap. Pour cela vous avez *deux solutions. Si c’est possible matériellement vous en ajoutez et si ça ne l’est pas vous compressez. C’est la que zRam entre en jeu. Il s’agit d’un module présent nativement dans le noyau Linux, qui permet une fois configuré de compresser les instructions déjà présentes en RAM afin de disposer de plus d’espace pour les suivantes. En un sens cela permet d’augmenter virtuellement la quantité d’espace mémoire disponible. Bien entendu et je le précise car je sais que vous êtes rusés, la mémoire compressée va être de ce fait un peu plus lente. Cela va demander aussi un tout petit peu plus de boulot au CPU, qui devra compresser et décompresser les instructions avant de les traiter. Malgré tout le gain est réel et le ratio restera positif si on compare à un disque dur traditionnel.
La deuxième question que vous pourriez vous poser c’est de savoir si zRam peut-être utile avec un SSD, qui lui ne fonctionne pas avec des éléments mécaniques. Je dirais oui et non. Tout dépend de votre configuration et de votre utilisation. Si vous avez assez de RAM pour que votre SSD n’ait pas à swaper je dirais que vous n’en avez pas besoin. Dans le cas contraire vous pourriez commencer à y réfléchir, car même si les SSD d’aujourd’hui sont moins fragiles que ceux de première génération, swaper dessus activement ne doit pas être très bon à moyen terme. Ça multiplie les cycles d’écriture et je pense, mais c’est un avis personnel, qu’il peut claquer plus vite.
Donc en résumé si vous n’avez pas assez de RAM ou si vous ne voulez pas swaper sur votre SDD, activer zRam peut s’avérer utile d’autant plus qu’il n’y a pas grand chose à faire. Il suffit d’entrer ceci dans votre terminal :
sudo apt install zram-config
Normalement vous n’avez rien d’autre à faire, mais assurez quand même que les modifications aient été prises en compte à l’aide de la commande suivante :
cat /proc/swaps
ou :
swapon -s
Chez moi par exemple, si zRam n’est pas activé j’ai le retour suivant :
Comme vous pouvez le voir sur l’image ci-dessus le retour m’indique que le swap est en un bloc, donc zRam n’est pas actif. Si vous êtes dans ce cas là entrez ceci dans votre terminal :
sudo service zram-config start
Comme vous pouvez le constater ce n’est plus la même chose. les différents espaces sont compressés (ils correspondent aux nombres de cœurs processeurs) et que tout est en place.
On peut le voir également dans l’analyseur de disque.
Si pour une raison spécifique vous souhaitez revenir en arrière et désactiver zRam, il suffit d’entrer ceci dans votre terminal :
sudo swapoff /dev/zram1
sudo zramctl --reset /dev/zram1
Voilà. Ça ne casse pas trois pattes à un canard mais ça peut servir.
*Si vous tournez sur un SSD avant de compresser il peut être intéressant de vous intéresser aux paramètres swapiness. Sur Ubuntu par exemple, le système est prévu pour dumper et commencer à swapper lorsque la RAM affiche un taux d’occupation de 40%. Si sur un serveur cela peut s’avérer utile, c’est un peu moins cohérent sur un PC de bureau. Laisser 60% de RAM inutilisée n’a pas de sens. Si vous voulez en savoir plus à ce sujet vous pouvez jeter un œil là-dessus.
Amusez-vous bien!