Aller au contenu principal
Sujet: "earlyoom" : Le gardien de la Mémoire (Lu 166 fois) sujet précédent - sujet suivant

"earlyoom" : Le gardien de la Mémoire

Ce scénario réaliste illustre comment j'ai pu éviter le blocage de TW dans une situation d'utilisation intensive (OOM).
La combinaison de la RAM physique, zram, du swap traditionnel, et d'earlyoom m'a permis de :

1. Exécuter simultanément des applications gourmandes en mémoire (VM, Kodi en 4K).
2. Maintenir une navigation web fluide avec certains onglets.
3. Effectuer des tâches système lourdes (mises à jour) sans compromettre la stabilité.
4. Éviter les blocages système et les pertes de données potentielles.

Photographie des mémoires activées :
• 12 Go de RAM physique
• 19 Go de swap total (incluant zram)
• zram activé
• earlyoom installé et configuré
sysctl :
* m.swappiness = 10
* vm.vfs_cache_pressure = 50
* vm.dirty_ratio = 10
* vm.dirty_background_ratio = 5

Scénario : J'utilise mon OS openSUSE Tumbleweed pour diverses tâches.

Situation Générale :

• Multimédia
• Navigateur web avec 5 - 10 onglets
• 2 instances de terminal (monitoring, maj, téléchargement iso..)
• Applications récurrente Kvm , OnflyOffice

Total utilisé : environ 6-7 Go de RAM physique

Le Scénario progressif :

1. Phase 1 : Ouverture de mon navigateur
• Utilisation de RAM : ~2 Go / 12 Go
• Le swap et zram ne sont pas encore sollicités.

2. Phase 2 : Lancement de KVM
• La VM Lite Linux est allouée avec 4 Go de RAM.
• Utilisation de RAM : ~6 Go / 12 Go
• zram commence à être légèrement utilisé pour les pages moins actives.

3. Phase 3 : Youtube adrien linuxtricks et  Kodi ouvert film training day en pause
• Youtube / Kodi ~2 Go.
• Utilisation de RAM : ~8 Go / 12 Go
• zram est modérément utilisé, offrant un espace de swap rapide en mémoire.

4. Phase 4 : ouverture 5-7 onglets en plus
• La consommation des onglets supplémentaires ~3 Go.
• Utilisation de RAM : ~11 Go / 12 Go
• zram est fortement sollicité, compressant les pages mémoire moins utilisées.

5. Phase 5 : Terminal MAJ + reprise film training day sur kodi
• Les processus de mise à jour consomment ~1 Go supplémentaire.
• La RAM physique est presque entièrement utilisée.
• Le système commence à utiliser le swap sur disque en plus de zram.
earlyoom détecte que la mémoire disponible approche du seuil critique (5%).
• Une notification d'avertissement est envoyée.

6. Phase 6 : Intervention d'earlyoom
Je constate que mon navigateur et  moins réactif et que Kodi active la mise en cache du film.
• La mémoire disponible atteint le seuil critique.
earlyoom identifie les processus les plus gourmands en mémoire.
• Il termine certains onglets de mon navigateur, (comme configuré dans les préférences).
• Le système libère de la mémoire et redevient réactif, pas de blocage de l'OS

Installation et configuration d'earlyoom sur openSUSE Tumbleweed

Qu'est-ce qu'earlyoom ?
earlyoom est un démon léger qui améliore la réactivité du système en surveillant l'utilisation de la mémoire et en intervenant avant que le système ne devienne non réactif. Il termine les processus gourmands en mémoire pour éviter les blocages.

Installation d'earlyoom
1. Ouvrez un terminal.
2. Installez earlyoom avec la commande :
  
sudo zypper install earlyoom
Configuration d'earlyoom cf manpage earlyoom
1. Modifiez le fichier de configuration situé à /etc/sysconfig/earlyoom.
2. Utilisez votre éditeur préféré pour ajuster les paramètres :
  
sudo nano /etc/sysconfig/earlyoom
3. Exemple de mes ajustements :
  
EARLYOOM_ARGS="-r 60 -m 5,3 -s 5,3 -n --avoid '(^|/)(systemd|Xorg|Xwayland)$' --prefer '(^|/)(firefox|chrome|chromium)$'"
   - -r 60 : Vérifie la mémoire toutes les 60 secondes.
   - -m 5,3 -s 5,3 : Envoie un SIGTERM à 5% de mémoire/swap libre et un SIGKILL à 3%.
   - -n : Active les notifications.

Surveillance d'earlyoom via terminal
1. Après modification, rechargez systemd et redémarrez earlyoom :
  
sudo systemctl daemon-reload
sudo systemctl restart earlyoom
  
2. Surveillez l'activité d'earlyoom avec :
journalctl -f -u earlyoom
Conclusion
En utilisant earlyoom, j'ai pu éviter le figeage de mon os dus à une utilisation excessive de la mémoire.

La meilleur pratique est :
  • Ne pas ouvrir plusieurs applications gourmandes en mem simultanément
  • Augmenter sa mémoire vive (achat)
  • Fermer les onglets inutilisés ou applications
  • dans le cas contraire utiliser earlyoom