Mysql connections Piwik


(kero) #1

Hi,
Piwik macht anscheinend fuer jeden Request usw. eine neue Mysql Connection auf oder? Das ist relativ unguenstig, wenn die Mysql DB nur eine begrenzte Anzahl an Connections zulaesst. Ich habe mal geschaut wie das bei meiner Installation am Freitag Nachmittag aussieht:

netstat -tulpena|grep datenbankserverIP|wc
306 2196 29280

Also rund 306 Connections, die zum DB gehalten werden. Die meisten bzw. fast alle haben als State TIME_WAIT.

Jemand Ideen wie man das optimieren kann? Einfach immer max_connections weiter hochschrauben ist ungut, besser waere es natuerlich wenn Piwik weniger Connections nutzen wuerde.

Jemand Ideen dazu?

Kero


(Thomas Seifert) #2

Connections im TIME_WAIT sind eigentlich bereits geschlossen. Schau lieber in die processlist von MySQL um real offene Verbindungen zu sehen.
Eine neue Verbindung pro Seitenaufruf ist völlig in Ordnung und diese werden beim Beenden des Requests von PHP normalerweise wieder geschlossen.
Die Verbindungen persistent zu halten erzeugt nur unnötig offen gehaltene Verbindungen. Ein Connection-Pool müsste auf völlig anderer Ebene eingebunden werden, da kann PIWIK gar nicht viel machen.

Hast Du ein reales Problem, wobei Du Max Connections bereits erreicht hast?


(kero) #3

Hi,
also die Connections mit TIME_WAIT sind eigentlich bereits geschlossen?
Bedeutet also, dass Mysql die connection nicht mehr zu den “max_connections” zaehlt?
Ja, die Max Connections habe ich erreicht, daher frage ich nach ;-). Habe vermutet, dass wurde durch Piwik provoziert, da piwik recht viele Verbindungen zum MysqlServer hatte.

Kero


(Thomas Seifert) #4

Ja, time_wait connections sind bereits geschlossen. Die Suche im Internet dürfte eine Menge Ergebnisse dazu liefern ;-).
Um zu sehen, welche Connections wirklich zu MySQL offen sind, einfach mal “show processlist” in mysql eingeben. Dies liefert eine Liste der Connections.


(kero) #5

Danke,
ich schau mir das heute Mittag nochmal genau an.

Kero