La Mémoire Commited et comment la réduire

Bonjour,

Je suis étudiant en informatique et j’ai encore du mal à comprendre le concept de mémoire commited.
Ce que j’ai compris qu’une mémoire commited, c’est quand un processus demande de la mémoire mais qu’il n’utilise pas réellement. (dite moi si c’est faux).

Ma question est de savoir comment réduire la mémoire commited sur un serveur Linux.
En modifiant par exemple les fichier /proc/sys/vm/overcommit_memory (echo 2>/proc/sys/vm/overcommit_memory ) et le fichier /proc/sys/vm/overcommit_ratio (echo 50 > /proc/sys/vm/overcommit_ratio) ? ou il y a un autre moyen de le faire.

Autre question savoir quels processus qui demande de la mémoire commited ?

Mr_Hassan60

Pas tout-à-fait. La mémoire « committed » (qu’on pourrait traduire approximativement par « accordée ») est toute la mémoire virtuelle demandée et obtenue par le processus, qu’il l’ait utilisée ou non.

Pourquoi ? Tant qu’elle n’est pas utilisée, elle ne consomme pas de mémoire physique grâce à la magie de la mémoire virtuelle.

Tous. Des commandes comme ps ou top permettent d’afficher la quantité de mémoire virtuelle allouée à chaque processus.

Mais si je veux la réduire comme même, c’est le processus d’un conteneur docker qui prend plus de mémoire dans mon exemple sans forcer à l’arrêter ou le rédemarrer le conteneur.
Je peux la réduire avec les fichiers /proc/sys/vm/overcommit_memory et /proc/sys/vm/overcommit_ratio.(Juste réduire la mémoire commited) ?
La mémoire commited prend plus de place que la mémoire physique et ce que j’ai compris c’est normal mais je voudrais comme même la réduire (pas tout réduire non plus mais qu’il n’utilise pas environ 100% de mémoire commited).

Désoler j’ai encore du mal à comprend Linux c’est pour ça je pose des questions.
Merci pour ton temps pour m’expliquer @PascalHambourg.

mrhassan60

Quel est le vrai problème ?

Au plus simple dans Docker si je veux limité quoi qu’il arrive la consommation mémoire d’un containeur :

docker run --memory=512m mon-app:latest

Tu peux aussi intervenir sur la swap utilisé avec cette typo --memory-swap=62m.
Si tu veux virer le OOM Killer ce sera avec ça : --oom-kill-disable
Idem avec les ressources pu.
Tu peux aussi ouvrir le grand livre de la gestion des ressources avec les cgroups et docker … c’est passionnant et vachement complexe.

Un chtit lien sympa pour docker : docker | Docker Documentation

En particulier : docker run | Docker Documentation

Maintenant la limitations devrait plutôt se faire côté applicatif, le système va être moins tendre avec les applicatifs qui dépassent les limites que tu imposera.

Le problème pour moi, c’est que j’ai encore du mal à comprendre avec la notion de mémoire commited.
Je me pose des questions aux quels je ne trouve pas de réponse (peut-être je ne pose pas les bonnes questions).
Ma question serais quand une mémoire commited dépasse par exemple 150% de la mémoire RAM + SWAP, c’est une alerte majeur ou c’est une fausse alerte ?

Fausse alerte. Ce qui compte, c’est la mémoire réellement utilisée.

D’accord, je vous remercie pour vos réponses et avoir pris votre temps pour me répondre @PascalHambourg et @Clochette.