Dans les journaux d’erreurs, je reçois de manière intermittente les erreurs suivantes. Cela rend le site inaccessible pendant 15 à 30 secondes jusqu’à ce qu’il redevienne opérationnel.
Message d’erreur Info :
PG::ConnectionBad (FATAL : le système de base de données est en mode récupération) /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize’
Une chose vraiment étrange que j’ai remarquée en examinant ces journaux, c’est qu’il semble chercher le dossier à l’adresse /var/www/…, mais ce dossier n’existe pas sur le serveur. Est-ce normal ? Toute aide est appréciée.
Si la base de données est corrompue, alors le site est nécessairement hors service. Vous devez déterminer pourquoi. Les raisons les plus courantes sont un manque de RAM et d’espace disque. Je parierais sur la RAM. De combien de RAM disposez-vous ? Que donne la commande free -h ?
C’est le chemin à l’intérieur du conteneur. Si vous exécutez ./launcher enter app, vous le verrez là.
Eh bien, vous avez 646 Mo disponibles, et 4 Go sont suffisants pour que l’utilisation du fichier d’échange (swap) ne soit généralement pas recommandée. Quelle est la taille de votre base de données ? Quel est votre volume de trafic ? Y a-t-il autre chose que Discourse qui s’exécute sur le serveur ?
Rien d’autre que Discourse ne tourne sur le serveur.
Pour obtenir la taille, j’ai exécuté :
./launcher enter app
rails db
SELECT pg_size_pretty(pg_database_size(current_database()));
Le résultat affiché était de 4650 Mo (1 ligne).
En ce qui concerne le trafic :
Nous avons enregistré 1 200 pages vues hier et 12 400 au cours de la dernière semaine. Environ 160 utilisateurs au cours de la dernière semaine et environ 80 utilisateurs simultanés à tout moment.
Vous êtes le meilleur. L’espace d’échange de 1 Go semble avoir résolu tous les problèmes de plantage. Je suis vraiment content que ce soit un problème de RAM et non de base de données. Je vais augmenter la quantité de RAM de mon serveur ce week-end. Merci beaucoup à tous ceux qui ont aidé dans ce fil de discussion !
Honnêtement, je ne suis pas sûr. Avant cela, nous avions effectué une reconstruction et un redémarrage du serveur après avoir changé le matériel il y a quelque temps. Je suppose qu’après un redémarrage, Discourse aurait détecté tous les changements système.
Après l’installation du fichier d’échange, il y avait des moments où plus de 4 Go de « mémoire » étaient utilisés, il semble donc que ce soit clairement le problème pendant nos périodes les plus chargées, ce qui correspond aux périodes où le serveur a planté. Nous avons effectué une mise à niveau aujourd’hui et le site fonctionne très bien maintenant.
Mais ce n’est pas le cas. Il existe des paramètres qui contrôlent, par exemple, la quantité de RAM que la base de données peut utiliser, et qui sont intégrés dans app.yml. Vous pouvez les modifier manuellement ou relancer discourse-setup.