Augmentation soudaine de l'utilisation de la mémoire qui ne diminue pas

Il y a un peu plus d’une semaine, j’ai examiné le graphique DO pour la mémoire et j’ai été assez surpris :

Il était stable depuis plus d’un an. J’ai arrêté/redémarré le conteneur, et l’utilisation est revenue à la baisse, mais au cours des dernières heures, elle est remontée au niveau précédent.

Qu’est-ce qui cause cela ? Les commandes top et ps m’indiquent que les principaux responsables sont les processus PostgreSQL. Voici les informations issues de free :

$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.5Gi       142Mi       2.3Gi       5.1Gi       2.6Gi

Je ne peux même pas accéder au droplet via la console DO. Il plante en raison d’une erreur OOM (Out Of Memory). Heureusement, j’ai installé des clés SSH et je peux y accéder depuis mon ordinateur personnel, je suis donc encore en mesure d’accéder au droplet à l’heure actuelle.

Que devrais-je faire ? Mon budget est serré, donc redimensionner le droplet est un dernier recours. Je me demande s’il n’y a pas d’autres solutions. Cela semble arriver de nulle part. J’exécute la version 2.7.0.beta5.

Quoi, si quelque chose, a changé récemment ? Avez-vous effectué une mise à niveau ?

La seule montée verticale sur mes graphiques au cours des 14 derniers jours a également eu lieu le 11 mai, mais de manière moins marquée, passant de 78 % à 89 %. Peut-être avons-nous effectué une mise à jour à ce moment-là ?

Cela semble lié à l’hôte, car pour ma part, l’utilisation de la mémoire a diminué. Le passage à la version bêta9 a été ajouté le 10, donc j’ai probablement effectué une reconstruction à cette époque (et téléchargé une nouvelle image comme le montre l’utilisation du disque), mais je ne me souviens pas avoir mis à jour l’hôte, même si c’est possible.


Vous n’avez pas de swap ?

Non, j’exécute la version 2.7beta5 depuis un moment. Nous n’avons rien changé depuis un certain temps.

La raison pour laquelle je ne suis pas sur la dernière version est que des préoccupations ont été soulevées avec mon développeur front-end après la dernière mise à niveau que nous avons effectuée, car elle a introduit des changements cassants dans son code de style (je suis simplement un administrateur système, je n’ai aucune idée de ce genre de choses). Je pense que ces problèmes ont depuis été résolus dans Discourse, mais nous attendions la prochaine version mineure pour effectuer la mise à niveau.

Qu’est-ce qui pourrait causer cela sur l’hôte ?

Le redimensionnement du droplet double notre facture, donc je ne veux vraiment pas le faire, mais ce pourrait être la solution la plus simple.

La mémoire swap est celle fournie par défaut, je ne suis pas sûr.

:thinking: et que dit /sidekiq ?

Si vous ajoutez un espace d’échange (swap), vous éviterez les OOM. Vous ne voulez pas de OOM, et vous ne voulez pas non plus beaucoup d’activité de pagination, sinon l’augmentation de l’utilisation de la mémoire pourrait ou non être importante. (Cela pourrait être intéressant, mais c’est une autre question.)

Je recommande d’exécuter
vmstat 5 5
ou une commande similaire pour voir à quoi ressemble l’activité de pagination.

Aussi,
free -h
est plus utile que
free -mh
car il est important de savoir combien d’espace d’échange il vous reste.