Saturation de la mémoire sous Linux

Hello,

C’est un sujet récurrent et j’avais déjà lancé un fil là-dessus il y a quelques années mais qui n’avait pas bien résolu mon problème. J’ai depuis changé de laptop, le nouveau a maintenant 16 Gb de RAM au lieu de 8, mais le problème n’a pas du tout disparu.

Un petit screenshot résume bien la chose:
image

La cache prend plus de la moitié de mémoire physique et des fois il suffit que j’ouvre un peu trop d’onglets dans Firefox ou Falkon pour ça pète : soit l’un des navigateurs va être automatiquement tué, soit pire le système va devenir inutilisable et me forcer au hard reboot.

Ok Linux utilise au maximum la RAM notamment avec du cache et du buffer, c’est très bien, mais pourquoi il ne les réduit lorsque les applis ont besoin de mémoire alors que la mémoire physique est déjà quasiment saturée ?

Merci, Vincent.

1 J'aime

Bonjour,
Quelle distribution as-tu installé? A quelle version, et avec quel média?
Le fait que le cache utilise d ela mémoire n’a pas beaucoup d’importance. C’est du tampon, celui-ci est effacé si une application a besoin de plus de mémoire.
Que donne en ligne de commande
# free -h

Actuellement je suis sous sid mais en fait ça va fait des années que je constate ça,…

Oui c’est bien ce que ce comportement que j’aimerais constater, c’est à dire ne pas voir mon browser tué, ou pire un système inutilisable, alors que le cache occupe encore plein de Gb !

Sinon la commande free me renvoit ça:

               total        used        free      shared  buff/cache   available
Mem:            15Gi        14Gi       487Mi       5.3Gi       6.0Gi       956Mi
Swap:          975Mi       973Mi       2.5Mi

à partir de quelle iso?

Installation réseau depuis clé usb, mais pourquoi cette question ?

Pour avoir toutes les informations possibles :slight_smile:

Dans les logs as -tu trouvé quelque chose?
Est-ce que tu as testé de lancer ton firefox en safe-mode (dans une fenêtre de ligne de commande avec l’option --safe-mode )?

Ceci afin de voir si le problème se répète.

Pourquoi tu ne commences pas agrandir ton swap (1 Go pour 16 Go de RAM). Vu ton problème, je commencerais par là.

PS : personne ne « tue » ton browser, éventuellement il crash.

Effectivement je n’avais pas vu.
Pour bien faire le swap doit au moins être égal à 1,5 x la mémoire.
Il the suffit de faire un swapoff pour désactiver le swap.
De supprimer l’ancienne partition et de recréer une nouvelle partition d’une taille correcte.
J’espère que tu as utilisé LVM pour que ce soit facile à faire.

Si si et même ça s’appelle le Out Of Memory Killer: Le Out Of Memory Killer (OOM Killer) est un mécanisme du noyau Linux qui intervient quand la mémoire (RAM + swap) est complètement saturée et qu’il n’y a plus assez de ressources pour répondre aux demandes des processus. Son but est d’éviter un crash total du système en « sacrifiant » certains processus pour libérer de la mémoire.

Normalement c’est plutôt moins, mais perso j’aimerais carrément ne pas avoir de swap, ou alors à peine… et cela ne devrait pas changer fondamentalement le comportement attendu. Mais on s’éloigne un peu de ma question que je recolle: Ok Linux utilise au maximum la RAM notamment avec du cache et du buffer, c’est très bien, mais pourquoi il ne les réduit lorsque les applis ont besoin de mémoire alors que la mémoire physique est déjà quasiment saturée ?

Certes je pourrais tenter d’augmenter le swap, mais sur le fond je trouve ça tellement anormal d’avoir un système saturé en mémoire alors que j’ai simplement 2 browsers (avec une dizaine d’onglets) qui tournent, et à peu près rien d’autre ! Avec 16 Gb de RAM, même sans swap, je trouve ça complètement dingue, et ça fait des années, je rappelle que c’était pareil avec mon ancien laptop et ses 8 Gb de RAM. Quand je suis sous Windows je n’ai pas à me préoccuper des ces soucis de mémoire…

1 J'aime

C’est minimum l’équivalent de ta mémoire. Et si tu te retrouves en veilles, tu verras vite que le minimum c’est parfois juste.
Si tu n’as pas de swap et que pour libérer ded la mémoire il doit libérer du buffer, il doit sauvegarder ces buffers sur le swap. Donc pas de swap, pas de libération de cache/buffer, pas de libération de cache/buffer pas de l’ibération de mémoire, QED.

Mais qui consomment la moitié de ta mémoire déjà. Donc non ce n’est pas peu. D’autant que tes onglets ne sont pas statiques, il y a du rafraîchissement de cache du navigateur, donc de mémoire aussi.

Parce que windows gérait le swap à ta place et que tu ne le voyais pas.

Je pense qu’effectivement la taille restreinte de mon swap pourrait avoir une grosse influence. Ce qui m’énerve c’est de voir que le noyau ne réduit pas la taille de la cache alors que la mémoire est déjà saturée. Mais en fait je pense qu’il le fait, mais juste pas avec la réactivité souhaitée. Avec plus de swap ça pourrait lui laisser plus de temps pour réaliser qu’il faut réduire le cache et ne plus paniquer en utilisant l’OOM killer.

J’avais déjà 1 Gb de swap en partition et je viens de rajouter 4 Gb en fichier, on va voir déjà ce que ça donne avec 5 Gb de swap avant d’augmenter si nécessaire…

C’est vraiment chouette Windows ! :wink:

Bonjour,

Avez vous un motif impératif d’employer Sid ?

J’emploie la version stable de Debian depuis des décennies et je n’ai jamais eu de souci avec le cache mémoire de Linux.

Cordialement.

1 J'aime

Pour la taille du swap, ça n’a aucune importance. On a 16G de RAM et c’est largement suffisant d’après l’utilisation décrite. L’utilisation du swap montre qu’il y a des choses à corriger. J’avais pendant une période une partition inutilisé de 64G que j’ai recyclé en swap en plus des 32G et quand ça merde, 1x ou 10x la taille de la RAM le swap sera utilisé à 100%
Pour Firefox, il faudrait tester avec un profil vierge et sans extensions pour confirmer si le comportement est le même. Ça peut aussi provenir des sites consultés. Firefox intègre plein d’outil pour monitorer et analyser le fonctionnement.

Je n’ai jamais réussi à trouver une solution pour Firefox qui arrive à swap dans certaines conditions. J’ai presque moins de problème sur mon pc portable avec seulement 8G de RAM. J’ai pris l’habitude de fermer le navigateur régulièrement.

IL n’ apas répondu sur le fait de tester en --safe-mode pour lancer Firefox.

c’est pas tout à fait pareil mais ça vaut le coup de tester

Mon problème n’était pas sur la consommation mémoire de Firefox ou de Falkon (à ce niveau là ça me parait tout à fait raisonnable) mais sur le fait que le cache ne se réduisait pas lorsque la mémoire était quasiment saturée.

Mais depuis que j’ai rajouté 4 Gb de swap depuis hier soir tout se passe merveilleusement mieux. Plus aucun OOM killer, et mon occupation mémoire reste tranquillement sous les 80% même en abusant de mes navigateurs. A confirmer avec le temps, mais il semblerait que comme me laisse entendre Grok, une proportion raisonnable de swap donnerait plus de temps au noyau pour se rendre compte qu’il faut réduire le cache:

Avec 1 Go de swap, le tampon était trop petit pour amortir ces pics, d’où les crashs. Avec 5 Go, tu es dans une proportion raisonnable (souvent, on recommande 1/4 à 1/2 de la RAM pour des usages desktop modernes).

A une époque oui mais plus maintenant, d’ailleurs je pense passer à stable à la prochaine release…

et ça confirme bien que penser que le swap est inutile est une erreur.

1 J'aime

Ça augmente la mémoire totale, on aurait pu ajouter 4 Go de mémoire physique également. On ne repousse que la limite et il probable que le problème persiste mais qu’il faut un peu plus de temps pour l’atteindre.
Avec 16 Go de RAM et l’utilisation décrite, je suis perplexe sur cette consommation de mémoire qui me semble excessive.
J’aurais tendance à régler le problème plutôt que le contourner. Ajouter du swap ne pose pas de soucis mais avec des performances réduites.

A partir de 16 Go, j’aurais tendance à mettre 1 à 2 Go de swap. Faudrait retrouver les recommandations pour une utilisation desktop. Après c’est dépendant de l’utilisation et des programmes utilisés.

Non leur utilisation ne sont pas similaire. C’est faire un parallèle sans fondement réel du fonctionnement des deux.
Le swap fait parti du système, le sabrer c’est comme s’enlever une partie de sot même.