MySQL:max_connections reached, jede Nacht
Posted: 2009-10-07 09:17
Hallo!
Auf meinem Webserver (Lenny: Apache2, MySQL5, PHP5.2) beobachte ich schon seit längerem ein Problem, dessen Ursprung ich nicht erkennen kann. Ein Blick im Anhang veranschaulicht es relativ schnell. Nahezu jeden Tag (mysql_threads-week.png) steigen ab 24:00 Uhr die MySQL-Threads an (mysql_threads-day.png). Irgendwie werden die zu spät beendet. Ich habe mal eine Nacht lang mitgeloggt, meist starten SELECTs. Die CLOSE-Befehle der Verbindungen kommen dann aber sehr zeitverzögert (im Schnitt bis zu 10min), obwohl der SELECT Befehl schon abgesetzt wurde. Das hat dann irgendwann zur Folge, dass dann max_connections erreicht ist. Was dann passiert, kann man sich ausmalen. Da der Mailserver auch die MySQL-DB nutzt, gibt's hier manchmal ziemlichen Stress mit eingelieferten Mails.
Der ganze Hokuspokus endet 6:25Uhr, wenn die "daily" Cronjobs ausgeführt werden. Bis dahin kann ich weder hohe Systemlast, noch hohen Traffic (if_eth0-day.png) oder mehr SQL-QUERYs (mysql_queries-day.png) erkennen.
0:01Uhr startet ein MySQL Backupscript. Mittels mysqldump werden alle DBs "gerippt" und in eine bz2 Datei gepackt. Dauert max. 10min.
Hat jemand noch einen Tipp für mich, wie ich das Problem eingrenzen und beheben kann? max_connections raufsetzen ist sicherlich keine langfristige Lösung...
Danke!
Guß
Roger.
Auf meinem Webserver (Lenny: Apache2, MySQL5, PHP5.2) beobachte ich schon seit längerem ein Problem, dessen Ursprung ich nicht erkennen kann. Ein Blick im Anhang veranschaulicht es relativ schnell. Nahezu jeden Tag (mysql_threads-week.png) steigen ab 24:00 Uhr die MySQL-Threads an (mysql_threads-day.png). Irgendwie werden die zu spät beendet. Ich habe mal eine Nacht lang mitgeloggt, meist starten SELECTs. Die CLOSE-Befehle der Verbindungen kommen dann aber sehr zeitverzögert (im Schnitt bis zu 10min), obwohl der SELECT Befehl schon abgesetzt wurde. Das hat dann irgendwann zur Folge, dass dann max_connections erreicht ist. Was dann passiert, kann man sich ausmalen. Da der Mailserver auch die MySQL-DB nutzt, gibt's hier manchmal ziemlichen Stress mit eingelieferten Mails.
Der ganze Hokuspokus endet 6:25Uhr, wenn die "daily" Cronjobs ausgeführt werden. Bis dahin kann ich weder hohe Systemlast, noch hohen Traffic (if_eth0-day.png) oder mehr SQL-QUERYs (mysql_queries-day.png) erkennen.
0:01Uhr startet ein MySQL Backupscript. Mittels mysqldump werden alle DBs "gerippt" und in eine bz2 Datei gepackt. Dauert max. 10min.
Hat jemand noch einen Tipp für mich, wie ich das Problem eingrenzen und beheben kann? max_connections raufsetzen ist sicherlich keine langfristige Lösung...
Danke!
Guß
Roger.