Aller au contenu

Surengagement de la mémoire

Surengagement de la mémoire (en anglais memory overcommit) : politique du noyau Linux qui accepte de promettre aux processus plus de mémoire qu'il n'en possède, parce que la plupart n'utilisent jamais tout ce qu'ils réservent.

Le paramètre vm.overcommit_memory choisit entre trois modes : 0 (défaut), une heuristique qui ne refuse que les demandes manifestement impossibles ; 1, qui accepte toujours (Redis l'exige pour ses sauvegardes en arrière-plan) ; 2, qui refuse toute réservation au-delà de l'espace d'échange plus vm.overcommit_ratio % de la mémoire (50 par défaut), mode que la documentation de PostgreSQL recommande sur un serveur de base de données dédié. Avec les deux premiers, le manque se découvre au moment où la mémoire est réellement touchée, et c'est l'OOM killer qui choisit une victime ; avec le troisième, la réservation échoue proprement. /proc/meminfo compare l'engagé (Committed_AS) à la limite (CommitLimit).

Ne posez pas 1 sans logiciel qui l'exige : il rend seulement les situations de manque plus brutales. Comme tout réglage hérité, il se justifie par une raison écrite, ou il disparaît.

Dans les cours

Voir aussi