Datenbank-Queries hängen
am 13.02.2015 - 18:36 Uhr in
Ich habe immer mal wieder (alle paar Monate) Probleme mit der Datenbank, so dass diese sich "aufhängt":
"PDOException: SQLSTATE[42000] [1203] User db11358xyz already has more than 'max_user_connections' active connections"
Der Wert für "max_user_connections" steht auf 200, was für den Betrieb der Webseite eigentlich ausreichen sollte.
Der Support von Hosteurope meint dazu:
Erneut haben sich unzählige hängende SELECTs im MySQL-Server aufgestaut.
Es ist hier offensichtlich, dass Ihre Anwendungen diese Probleme verursacht.
Die von den Kollegen gekillten Selects finden Sie im Anhang.
Die Anwendung ist eine aktuelle Drupal 7-Installation.
Den Anhang habe ich beigefügt – leider fehlt mir das Wissen, um daraus etwas ableiten zu können …
Was könnte diese "hängenden SELECTS" verursachen?
Danke für jede Hilfe oder Hinweis!
Anhang | Größe |
---|---|
selects.sql_.txt | 46.89 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst Du mal die Variablen
am 15.02.2015 - 22:49 Uhr
Kannst Du mal die Variablen aus der MySQL Umgebung dazu posten?
Sieht so aus
am 16.02.2015 - 08:41 Uhr
als würde ein join irgendwo mit der user Tabelle gebaut. Die daraus resultierende Tabelle sollte nach der Session eigentlich wieder weg sein. Also ist entweder die Session auf "ewig" eingetragen oder es wwird sonstwie verhindert dass die tmp gelôscht wid.
Danke für Eure Hilfe!Im
am 16.02.2015 - 12:06 Uhr
Danke für Eure Hilfe!
Im Anhang habe ich mal die Variablen beigefügt.
(Hosteurope ist zwischenzeitlich recht sauer, weil die Seite – dank shared hosting – wohl auch die Nachbarn in Mitleidenschaft zieht …)
Die Sessions-Tabelle hatte zwischenzeitlich mehr als 400KB – ich denke nicht, dass das normal ist?!
Aber was könnte die Ursache sein?
Ohne innodb?
am 16.02.2015 - 12:05 Uhr
Du arbeitest ohne innodb?
Die beiden Tabellen "user"
am 16.02.2015 - 12:07 Uhr
Die beiden Tabellen "user" und "sessions" habe ich heute morgen auf "innodb" umgestellt. Der Rest ist weiterhin unangetastet.
Empfiehlt es sich, alle Tabellen auf innodb umzustellen?
InnoDB ist langsamer,
am 16.02.2015 - 14:05 Uhr
InnoDB ist langsamer, arbeitet aber sauberer. Von daher interpretiere das mal.; )
Aber bei Dir scheint wohl was mit den sessions im Unklaren zu sein.
Um da eine bessere Ausage liefern zu können müsste man mal da rein schauen. Also settings, config etc.
An Deiner Stelle würde ich die gesamte page auf Deinen Testserver spielen und dann schön traffic produzieren, und mir dann die logs von mysql und access log und error log anschauen.
Das Einzige was zumindest ich sagen kann ist dass das lock darauf hinweist dass die Tabelle nicht wieder frei gemacht wird.
Danke für die
am 26.02.2015 - 12:11 Uhr
Danke für die Hinweise!
Schlussendlich habe ich die Tabelle neu aufgebaut und seitdem scheint der Fehler weg zu sein: die Ursache habe ich also nicht gefunden, aber die Seite läuft wieder …
Ich behalte es mal im Auge …