Wir erhielten diese Meldung in unserem Forum. (ungefähr alle 3-4 Stunden). Wir haben 16 CPU-Kerne und 32 GB RAM. Ich glaube nicht, dass die Ressourcen ein Problem darstellen.
Oops
Die Software, die dieses Diskussionsforum antreibt, ist auf ein unerwartetes Problem gestoßen. Wir entschuldigen uns für die Unannehmlichkeiten.
Detaillierte Informationen über den Fehler wurden protokolliert und eine automatische Benachrichtigung generiert. Wir werden uns darum kümmern.
Es sind keine weiteren Maßnahmen erforderlich. Wenn der Fehler jedoch weiterhin besteht, können Sie zusätzliche Details, einschließlich der Schritte zur Reproduktion des Fehlers, angeben, indem Sie ein Diskussionsthema in der Feedback-Kategorie der Website veröffentlichen.
Das Produktionsprotokoll zeigt
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/content_security_policy/middleware.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'
Unerwarteter Fehler in Message Bus: ActiveRecord::ConnectionNotEstablished: Verbindung zum Server unter "172.17.0.2", Port 5432 fehlgeschlagen: FATAL: verbleibende Verbindungsslots sind für nicht-replizierende Superuser-Verbindungen reserviert.
Unerwarteter Fehler in Message Bus: ActiveRecord::ConnectionNotEstablished: Verbindung zum Server unter "172.17.0.2", Port 5432 fehlgeschlagen: FATAL: verbleibende Verbindungsslots sind für nicht-replizierende Superuser-Verbindungen reserviert.
Unerwarteter Fehler in Message Bus: ActiveRecord::ConnectionNotEstablished: Verbindung zum Server unter "172.17.0.2", Port 5432 fehlgeschlagen: FATAL: verbleibende Verbindungsslots sind für nicht-replizierende Superuser-Verbindungen reserviert.
Unerwarteter Fehler in Message Bus: ActiveRecord::ConnectionNotEstablished: Verbindung zum Server unter "172.17.0.2", Port 5432 fehlgeschlagen: FATAL: verbleibende Verbindungsslots sind für nicht-replizierende Superuser-Verbindungen reserviert.
Wir haben die folgende Konfiguration eingestellt in
UNICORN_WORKERS: 32
UNICORN_SIDEKIQS: 2
und für psql
db_shared_buffers: "4096MB"
Bitte lassen Sie mich wissen, was ich sonst noch tun kann, um die Konfiguration zu verbessern und sicherzustellen, dass der Server nicht abstürzt.
Wenn Sie einen dedizierten Datenbankserver mit 1 GB oder mehr RAM haben, ist ein vernünftiger Startwert für shared_buffers 25 % des Speichers in Ihrem System. Es gibt einige Workloads, bei denen sich sogar größere Einstellungen für shared_buffers als effektiv erweisen, aber da PostgreSQL auch auf den Cache des Betriebssystems angewiesen ist, ist es unwahrscheinlich, dass eine Zuweisung von mehr als 40 % des RAMs an shared_buffers besser funktioniert als eine geringere Menge.
Und dies ist kein dedizierter Datenbankserver, es laufen auch 32 Unicorn-Prozesse darauf.
Ich richte mich bei solchen Dingen immer nach dir und dachte, ich würde einen Rat zitieren, den du in der Vergangenheit gegeben hast. Also, NEIN, ich bin mir nicht sicher.
Es ist ziemlich klar, dass die Verbindungen das Problem sind und die Erhöhung des RAMs auf 25 % von 32 GB im Allgemeinen helfen könnte, aber nicht die Ursache des Fehlers ist.
BEARBEITEN:
Ha! Das ist genau das, woran ich mich erinnert habe, außer dass es so aussieht, als hätte ich über 50 % gehen wollen. . .
Wir haben versucht, die Timeout-Einstellung für PSQL zu ändern, indem wir Folgendes ausgeführt haben: ALTER ROLE discourse SET statement_timeout = '30000';. Und diese Abfrage wurde blockiert, einmal alle paar Stunden.