Dernier message par Yoman - Comprendre et Gérer le "Out of Memory" (OOM) dans Linux
I. Concept de l'OOM dans Linux
1. Définition de l'OOM Killer • Mécanisme intégré au noyau Linux • Intervient lors d'un manque critique de mémoire (RAM ou swap) • Sélectionne et termine des processus pour libérer de la mémoire
2. Pourquoi l'OOM se produit-il ? • Linux utilise un modèle de surallocation de mémoire • Le noyau peut allouer plus de mémoire que disponible physiquement • Fonctionne bien car les applications n'utilisent pas toujours toute la mémoire demandée • Problème survient quand plusieurs applications utilisent toute leur mémoire allouée
II. Fonctionnement de l'OOM Killer
1. Processus de sélection automatique • Le noyau détecte une situation de mémoire critique • Évalue tous les processus en cours d'exécution • Attribue un score (oom_score) à chaque processus • Termine automatiquement le processus avec le score le plus élevé
2. Calcul du score OOM • Basé principalement sur l'utilisation de la mémoire • Tient compte d'autres facteurs (temps d'exécution, privilèges, etc.)
3. Paramètres dans linux pouvant gérer OOM
vm.overcommit_memory
vm.oom_kill_allocating_task
kernel.shmmax
kernel.shmall
vm.min_free_kbytes
III. Applications et outils pour gérer l'OOM
✅ À privilégier : • earlyoom : Tue les processus avant l'intervention de l'OOM Killer du noyau • systemd-oomd : Gestion OOM plus fine via systemd • cgroups v2 : Gestion granulaire des ressources, incluant la mémoire
⚠️ À tester : • nohang : Alternative à earlyoom avec fonctionnalités supplémentaires • oomd : Démon OOM de Facebook, puissant mais complexe • zram : Compression de la mémoire en RAM, retarde l'OOM
❌ À éviter : • Désactiver complètement l'OOM Killer • Régler vm.overcommit_memory à 2
IV. Pourquoi utiliser des applications tierces pour gérer l'OOM ?
Bien que Linux dispose d'un mécanisme OOM intégré, il existe plusieurs raisons d'utiliser des applications tierces :
1. Surveiller régulièrement l'utilisation de la mémoire 2. Optimiser les applications pour une meilleure gestion de la mémoire 3. Utiliser des outils comme earlyoom pour une intervention précoce 4. Ajuster les scores OOM des processus critiques 5. Considérer l'augmentation de la RAM ou du swap si les OOM sont fréquents
Conclusion Comprendre et gérer efficacement l'OOM est crucial pour maintenir la stabilité et les performances des systèmes Linux. Bien que le noyau Linux offre une gestion de base de l'OOM, l'utilisation d'outils tiers peut apporter une flexibilité et une efficacité supplémentaires, particulièrement dans des environnements complexes ou avec des exigences spécifiques.
Dernier message par Yoman -
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 :
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 :
- -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 :
Dernier message par Philoupes -
Yep, Merci @chalu pour l'info, J'ai eu cet avertissement hier et j'ai annulé la mise à jour complète... J'opte pour attendre ... Amicalement Philippe
Dernier message par torxxl -
Bonjour, Rencontrant des soucis de sortie de veille avec X11, je suis passé à Wayland. Depuis, l'icône de Thunderbird (version Opensuse et pas Flatpack) est un W Un moyen de corriger cela ? D'avance merci
Dernier message par jenrem -
Bonjour Chalu Merci pour l'info je n'ai pas eu de problème hier avec mes 1400 + MàJ Après vérification ( via Yast ) je n'ai pas " libOpenCL1 d'installé Bonne journée
Dernier message par chalu -
Bonjour, Visiblement une maj sur Tumbleweed de libOpenCL1 rentre en conflit avec nvidia-computeG04/G05/G06. Il semble impossible de garder les drivers Nvidia avec les solutions 1 et 2 rapportées dans le lien de déclaration du bug ci-dessous et opter pour la solution 3 risque de ne pas mettre correctement à jour le système. Il est sans doute préférable d'attendre un correctif avant de mettre à jour. Déclaration du bug : https://bugzilla.opensuse.org/show_bug.cgi?id=1233169
Dernier message par chalu -
Bonjour @Philoupes , La plateforme KDE devrait passer en version 6.7. Tu peux lister les versions des paquets installés avec
Dernier message par Philoupes -
Re Coucou les gens,
Bé, ça a bien marché en ligne de commande. Tout a été mis à jour et plus de petite icone persistante dans le Tray et plus rien dans le Discover. Santé ! J'ai mis le sujet à résolu Amicalement et bonne soirée Philippe
ppes@FIXE-MAISON:~/Téléchargements> flatpak update Looking for updates…
Info: runtime org.kde.Platform branch 6.6 is end-of-life, with reason: We strongly recommend moving to the latest stable version of the Platform and SDK Info: applications using this runtime: com.obsproject.Studio
ID Branch Op Remote Download 1. org.freedesktop.Platform.GL.default 24.08 u flathub < 146,8 Mo 2. org.freedesktop.Platform.GL.default 24.08extra u flathub < 146,8 Mo 3. org.freedesktop.Platform.Locale 24.08 u flathub < 379,7 Mo (partial) 4. org.freedesktop.Platform 24.08 u flathub < 261,4 Mo 5. org.kde.Platform.Locale 6.6 u flathub < 392,4 Mo (partial) 6. org.kde.Platform 6.6 u flathub < 334,4 Mo
Proceed with these changes to the system installation? [Y/n]: n
Ici il me dit que c'est KDE 6.6 qui est obsolète... Etonnant non ? jusqu'à présent je faisait pas du tout dans l'ordre de Chalu, Je faisais ma Mise a Jour système, si y avait besoin d'un redemarrage et pas de mise à jour dans Discover, la petite icone disparaissait. Si elle restait j'allais dans Discover faire la MàJ... Je teste dans l'autre sens et je reviens dire... A taleur