La mise à jour 2.6.0 beta 3 a échoué sur disque et/ou mémoire

Je me demande si, en plus des problèmes d’espace disque, le processus de mise à jour a dépassé la mémoire disponible (1 Go) allouée au droplet ? Vous pouvez voir dans ma capture d’écran de console ci-dessus une référence à ‘Out of memory’ comme premier élément enregistré après l’exécution de ./launcher rebuild app.

Ce que je n’ai pas mentionné, c’est qu’après cette tentative, la console a cessé de répondre (bien qu’à ce moment-là, j’utilisais la console web dans mon panneau de contrôle Digital Ocean, qui est toujours peu fiable), et j’ai ensuite redémarré le droplet. (Par la suite, j’ai utilisé PuTTY).

Quoi qu’il en soit, ce n’est pas idéal que la mise à jour ait été signalée comme réussie via la page de mise à jour de Discourse après avoir apparemment rencontré le même problème de mémoire et/ou de disque.

2 « J'aime »

Ah, le tueur OOM s’est déclenché. Ce n’est clairement pas bon. Normalement, je recommanderais d’augmenter l’espace d’échange. Vous pouvez voir l’utilisation actuelle avec swapon, dans mon cas :

# swapon 
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   3M   -2

Aussi free :

# free
              total        used        free      shared  buff/cache   available
Mem:        1992060      792904       80148       34696     1119008     1004956
Swap:       2097148        3084     2094064

Ce serait mauvais si votre fichier d’échange de 2 Go n’était pas actif. C’est problématique de ne pas pouvoir ajouter de swap sans utiliser d’espace disque !

Une façon d’améliorer l’espace disque pour une mise à niveau est de copier tous les fichiers de sauvegarde hors site, de vérifier leur intégrité, puis de les supprimer de votre serveur. Vous avez absolument besoin d’une bonne sauvegarde récente quelque part de manière sécurisée avant une mise à niveau, au cas où, mais elle n’a pas besoin d’être sur le serveur lui-même. Je me sentirais à l’aise en ne conservant que la dernière, mais je ferais certainement une copie hors ligne.

Il serait bon de revoir les résultats de du, maintenant que vous avez effectué tous les nettoyages.

2 « J'aime »

Je me demande : le 1 Go correspond-il à votre allocation de RAM et le 25 Go à votre allocation de disque ? Ce sont deux choses très différentes.

Édit : la version standard prise en charge, je crois, est d’avoir bien plus de 1 Go de RAM.
Édit : non, apparemment, 1 Go reste le minimum absolu recommandé.

2 « J'aime »

Je viens de me reconnecter, et les informations système affichées au lancement de la fenêtre de console sont les suivantes :

Charge du système : 0,01               Processus : 136
Utilisation de / : 59,4 % de 24,06 Go  Utilisateurs connectés : 0
Utilisation de la mémoire : 73 %       Adresse IP pour eth0 : 159.65.140.176
Utilisation du swap : 17 %             Adresse IP pour docker0 : 172.17.0.1

Donc, 17 % d’espace swap équivaut à 4 Go ?
Aucun utilisateur n’est connecté au forum, et seule la connexion PuTTY actuelle vers le droplet est active, pourtant la RAM est remplie à 73 %. Cela suggère qu’il ne faudrait pas beaucoup d’activité pour faire basculer le forum vers l’espace swap. Et si cela s’ajoute à l’utilisation déjà élevée de l’espace disque sur les 24 Go disponibles, cela pourrait créer une tempête parfaite lors d’une mise à jour ?

La commande du -kx / | sort -n | tail -33 me donne maintenant :

root@nz:~# du -kx / | sort -n | tail -33
505512  /usr/bin
528784  /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var/www/discourse/vendor/bundle/ruby/2.6.0
528788  /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var/www/discourse/vendor/bundle/ruby
528792  /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var/www/discourse/vendor/bundle
536848  /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var/www/discourse/vendor
548952  /var/lib/docker/overlay2/c126267f944d8d7f12415ac4f5908eba8a6a686b093cad3e0115eded8edfd6ba/diff
548968  /var/lib/docker/overlay2/c126267f944d8d7f12415ac4f5908eba8a6a686b093cad3e0115eded8edfd6ba
817700  /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/usr/lib
827812  /var/log/journal/8bebc832e1a692c83690ffe65e1256e3
868792  /var/log/journal
1069356 /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var/www/discourse
1069368 /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var/www
1069396 /var/log
1142352 /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/var
1202004 /var/discourse/shared/standalone/import/data
1307816 /var/discourse/shared/standalone/import
1362804 /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff/usr
1399332 /var/discourse/shared/standalone/backups/default
1399336 /var/discourse/shared/standalone/backups
1709408 /usr
2438224 /var/discourse/shared/standalone/postgres_data/base/16583
2462944 /var/discourse/shared/standalone/postgres_data/base
2481288 /var/discourse/shared/standalone/postgres_data
2540188 /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35/diff
2540204 /var/lib/docker/overlay2/3b68a713bd8e9a7f3b2a69ba8084a770b796e555e887ce4f66698d3894430c35
3387776 /var/lib/docker/overlay2
3460136 /var/lib/docker
3830584 /var/lib
5629420 /var/discourse/shared/standalone
5629504 /var/discourse/shared
5632224 /var/discourse
10747244        /var
14961492        /
root@nz:~#
1 « J'aime »

Je pense que vous pouvez améliorer cela avec journalctl, peut-être avec :

# journalctl --vacuum-size=50M

(ce que vous pourriez faire immédiatement avant de tenter une mise à niveau).

C’est intéressant que l’utilisation de PostgreSQL n’ait pas diminué.

La commande free vous montrera l’utilisation de la mémoire swap : elle est utilisée à 17 %, pour un certain montant, probablement 2 Go.

Il est clair que votre machine est un peu trop petite pour être confortable : vous avez besoin de plus de RAM ou de plus de swap, et vous ne pouvez pas pratiquement augmenter davantage le swap sans obtenir plus d’espace disque.

1 « J'aime »

Veuillez m’excuser - vous avez tout à fait raison. Le 1Go concernait la RAM, et non l’espace disque utilisé.

1 « J'aime »

Tout à fait juste, encore une fois.

root@nz:~# free
              total        used        free      shared  buff/cache   available
Mem:        1008828      655660       61716      102288      291452       96576
Swap:       2097148      459776     1637372

Je me demande si le processus de mise à niveau ne devrait pas évaluer la capacité du système hôte à prendre en charge la mise à niveau juste avant son lancement ?

2 « J'aime »

Je pense que cela relève un peu de la prédiction de l’avenir ! La vérification de l’espace disque de 5 Go est clairement utile, mais elle ne sera jamais infaillible. La mémoire vive (RAM) libre est plus difficile à évaluer, car il est assez complexe de déterminer combien sera nécessaire. Je pense que cela dépendra de la taille du forum et, peut-être aussi, de ce qui doit être modifié lors de chaque mise à niveau.

Je fais attention à minimiser les coûts, donc je passe du temps à essayer de faire tenir le tout sur un serveur bon marché. Mais à mesure que le forum grandit, il deviendra sûrement rentable de passer au niveau supérieur. Cela coûtera de l’argent, mais cela économisera du temps et des efforts.

2 « J'aime »

Je me situe malheureusement du côté de la minimisation des coûts : le forum est une initiative entièrement bénévole qui ne génère aucun revenu, et avec l’ajout de la publication par e-mail (via MailGun) exigée par les utilisateurs, cela me coûte déjà un peu chaque mois pour le faire fonctionner.

Comparé à d’autres loisirs, c’est moins cher que d’aller boire dans les boîtes de nuit, je suppose !

6 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.