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.
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.
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é.
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 :
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.
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 ?
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.
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 !