OOM killer

Quand un conteneur dépasse sa limite de mémoire, ou que le serveur manque de mémoire, l'OOM killer du noyau tue un processus pour libérer de la mémoire. Le conteneur s'arrête avec le code 137.

Comment ça marche

docker inspect -f '{{.State.OOMKilled}}' indique si le conteneur a atteint sa propre limite. Sans limite, un conteneur qui fuit grossit jusqu'à ce que tout le serveur manque de mémoire, et le noyau peut tuer un autre processus à sa place, souvent la base de données.

Ce qui casse

Une politique de redémarrage transforme une fuite mémoire en une série de courtes coupures : tué, relancé, tué à nouveau. Les limites gardent les dégâts dans un seul service ; corriger la fuite ou dimensionner la limite reste ton travail.

Dans un terminal

docker inspect -f '{{.State.ExitCode}} {{.State.OOMKilled}}' api
docker stats --no-stream

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.