Nous recevions continuellement ce message sur notre forum. (toutes les 3-4 heures). Nous avons 16 cœurs de CPU et 32 Go de RAM. Je ne pense pas que les ressources soient un problème.
Oops
Le logiciel qui alimente ce forum de discussion a rencontré un problème inattendu. Nous nous excusons pour le désagrément.
Des informations détaillées sur l'erreur ont été enregistrées et une notification automatique a été générée. Nous allons examiner cela.
Aucune autre action n'est nécessaire. Cependant, si la condition d'erreur persiste, vous pouvez fournir des détails supplémentaires, y compris les étapes pour reproduire l'erreur, en publiant un sujet de discussion dans la catégorie des commentaires du site.
Le journal de production indique
app/models/user_auth_token.rb:125:in `lookup'
lib/auth/default_current_user_provider.rb:131:in `current_user'
lib/current_user.rb:35:in `current_user'
app/controllers/application_controller.rb:1047:in `rate_limit_crawlers'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
config/initializers/100-silence_logger.rb:27:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:236:in `call'
Erreur inattendue dans Message Bus : ActiveRecord::ConnectionNotEstablished : la connexion au serveur à l'adresse "172.17.0.2", port 5432 a échoué : FATAL : les emplacements de connexion restants sont réservés aux connexions superutilisateur non répliquées
Erreur inattendue dans Message Bus : ActiveRecord::ConnectionNotEstablished : la connexion au serveur à l'adresse "172.17.0.2", port 5432 a échoué : FATAL : les emplacements de connexion restants sont réservés aux connexions superutilisateur non répliquées
Erreur inattendue dans Message Bus : ActiveRecord::ConnectionNotEstablished : la connexion au serveur à l'adresse "172.17.0.2", port 5432 a échoué : FATAL : les emplacements de connexion restants sont réservés aux connexions superutilisateur non répliquées
Erreur inattendue dans Message Bus : ActiveRecord::ConnectionNotEstablished : la connexion au serveur à l'adresse "172.17.0.2", port 5432 a échoué : FATAL : les emplacements de connexion restants sont réservés aux connexions superutilisateur non répliquées
Nous avons configuré ce qui suit dans
UNICORN_WORKERS: 32
UNICORN_SIDEKIQS: 2
et pour psql
db_shared_buffers: "4096MB"
Veuillez me faire savoir ce que je peux faire d’autre pour améliorer la configuration et m’assurer que le serveur ne plante pas.
Si vous avez un serveur de base de données dédié avec 1 Go ou plus de RAM, une valeur de départ raisonnable pour shared_buffers est de 25 % de la mémoire de votre système. Il existe des charges de travail pour lesquelles des paramètres encore plus importants pour shared_buffers sont efficaces, mais comme PostgreSQL s’appuie également sur le cache du système d’exploitation, il est peu probable qu’une allocation de plus de 40 % de la RAM à shared_buffers soit plus efficace qu’une quantité plus faible.
Et ce n’est pas un serveur de base de données dédié, il y a aussi 32 processus unicorn dessus.
Je m’en remets toujours à vous sur ce genre de sujets, et je pensais citer un conseil que vous aviez donné par le passé, donc, NON, je ne suis pas sûr.
Il est assez clair que les connexions sont le problème et que l’augmentation de la RAM à 25% de 32 Go pourrait aider en général, mais ce n’est pas la cause de l’erreur.
EDIT :
Ha ! C’est exactement ce dont je me souvenais, sauf qu’il semble que j’allais dépasser 50 %. . .
J’ai cru comprendre quelque part qu’il était dit que UNICORN WORKER devait être 2 * CPU. J’ai donc fait le calcul pour obtenir 32. Dois-je réduire l’échelle ?
Nous avons essayé de modifier le paramètre de délai d’attente pour PSQL en exécutant ALTER ROLE discourse SET statement_timeout = '30000';. Et cette requête est celle qui a été bloquée, une fois toutes les quelques heures.