[3.2] Zu viele DB-Verbindungen (Maximum User Connect)

Fragen rund um die Installation, Administration und Benutzung von phpBB 3.1.x und höher und die Konvertierung zu phpBB 3.2.x.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version [3.1.x] oder [3.2.x] angeben.
Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1025
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Zu viele DB-Verbindungen (Maximum User Connect)

Beitragvon canonknipser » 07.12.2017 09:01

Wie schon gesagt, die Angaben zu aktiven Verbindungen im MySQL sind immer Momentaufnahmen, daher ist hier aktuell viel Raten angesagt.
In der Regel sollte eine phpBB-Instanz (= 1 Board) nur eine Verbindung zur Datenbank aufbauen.

Eine Ursache für mehrere Verbindungen mit dem gleichen (Datenbank-)User kann z.B. ein Arbeiten im ACP sein, da hierfür ggf. eine separate Verbindung aufgemacht wird.
Eine weitere Ursache: Du hast sowohl http als auf https für dein Bord aktiv, dann gibt es für jedes der beiden Protokolle eine getrennte Verbindung.
Denkbar auch: Du wirst von einem BOT heimgesucht, der zeitgleich über mehrere IPs kommt und der nicht in der BOT-Tabelle registriert ist. Dann wird der BOT nicht als BOT erkannt, sondern phpBB baut dann mehrere GAST-Sessions auf. Wenn dann parallele Anfragen von diesen Sessions kommen, kann es aufgrund des o.a. Latenzproblems
canonknipser hat geschrieben:... kann eine "alte" Forenverbindung sein, die in dem Moment noch nicht ganz geschlossen war. Daher kann auch deine Fehlermeldung kommen, vgl. https://dev.mysql.com/doc/refman/5.7/en ... urces.html

For the MAX_USER_CONNECTIONS limit, an edge case can occur if the account currently has open the maximum number of connections permitted to it: A disconnect followed quickly by a connect can result in an error (ER_TOO_MANY_USER_CONNECTIONS or ER_USER_LIMIT_REACHED) if the server has not fully processed the disconnect by the time the connect occurs. When the server finishes disconnect processing, another connection will once more be permitted.

Gerade wenn Verbindungen (vom Server) gecached werden oder das Verbindungshandling verzögert ist, sind kurzfristig mehrere aktive Verbindungen pro User nichts ungewöhnliches.
dazu kommen, dass für einen kurzen Moment mehrere Datenbankverbindungen aktiv sind.- Abhilfeversuch: Schau dir regelmäßig die "Gästeliste" unter "Wer ist online an" und trage erkennbare BOTs in die BOT-Tabelle im ACP ein. Hier ist es möglicherweise hilfreich, die Session.-Länge im ACP zu erhöhen (Default 5 Minuten), z.B. auf 240 Minuten, dann brauchst du nicht so oft nachzuschauen ;)

Auch ein CRON (z.B. ein Script für eine regelmäßige DB-Sicherung) kann eine eigene DB-Verbindung aufbauen, beim CRON in phpBB insbesondere dann, wenn ein System-CRON anstelle des eingebauten CRON verwendet wird.

Hast du auf der gleichen Datenbank oder einer anderen mit gleichem User noch andere Software installiert (z.B. Wordpress, Yoomla etc.)? Diese nutzen dann natürlich separater Verbindungen.


Ein stochern im Nebel ...
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

juliokr
Mitglied
Beiträge: 466
Registriert: 06.02.2015 12:54
Wohnort: Paris
Kontaktdaten:

Re: [3.2] Zu viele DB-Verbindungen (Maximum User Connect)

Beitragvon juliokr » 07.12.2017 11:54

Hast Du bei deinem Hoster zugriff auf die Log-Files ?
Ich würde am eheste darauf tippen das sich auf deinem Forum oftmals viele Spam-Bots versuchen einzuloggen was jedes mal eine DB Verbindung öffnet (falls ich mich nicht irre) Normalerweise kommen selbst shared Hostings locker mit DB anfragen von softwares wie phpBB klar. Bei meinem Hoster z.B/ ist die maximale Zahl von gleichzeitigen DB Verbindungen auf 30 begrenzt. Da das reine Abrufen von Seiten ja aus dem Cache bedient wird wird normalerweise nur dann eine DB Verbindung aufgebaut wenn die Seite nicht im Cache ist, nur wenn jemand einen Beitrag speichert, sich einloggt, seine PM abruft, der Admin im ACP arbeitet ...
Also normalerweise kein Problem ausser wenn Du X-tausende von Usern pro Tag hättest

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1025
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Zu viele DB-Verbindungen (Maximum User Connect)

Beitragvon canonknipser » 07.12.2017 12:35

Na ja, die DB-Verbindung wird über den MySQL-User, der in der config.php steht, aufgebaut. Die Anzahl der User, die im phpBB unterwegs sind, ist eigentlich vollkommen unerheblich, weil wie du sagst, das meiste aus dem Cache bedient wird:
juliokr hat geschrieben:Da das reine Abrufen von Seiten ja aus dem Cache bedient wird wird normalerweise nur dann eine DB Verbindung aufgebaut wenn die Seite nicht im Cache ist

Aber: für jeden User, egal ob registriert oder nicht, wird bei jedem phpBB-Script-Aufruf zumindest ein Eintrag in der sessions-Tabelle eingestellt oder geändert ("session_lastvisit", "session_page" ...), der eine Datenbankverbindung aufbaut. Wenn dann ein (ich nenne es mal so) Multi-Kanal-Bot, egal ob SPAM oder ein "Guter", mit mehreren IP gleichzeitig unterwegs ist und parallel das Forum durchpflügt, finden zeitnah auch viele DB-Verbindungsauf- und abbauten statt.Und wenn dann der DB-Server (der bei Shared Hostern nicht immer hochperformant und skaliert aufgesetzt ist) dann mit seinem Verbindungs-Management nicht hinterherkommt ...
Durch den Eintrag in der BOT-Tabelle im ACP wird ein Multi-Kanal-Bot auf eine Session beschränkt, auch wenn er, wie ich es schon gesehen habe, mit 10 oder mehr IP-Adressen parallel unterwegs ist.
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC


Zurück zu „Support-Forum“