Datenbank-Server

ID #1089 PHP: Datenbank-Verbindungen werden nach mysql_close() nicht abgebrochen

Problem:

In MySQL liefert <code>show processlistcode> sehr viele Verbindungen, obwohl momentan recht wenig auf dem Server los ist. Selbst Scripte die <code>mysql_close()code> aufrufen, lösen die Verbindung nicht auf.

Dies liegt an den 'persistenten Verbindungen' von PHP. Es ist eine deutliche Performance-Steigerung, wenn sich ein Script nicht jedesmal neu einloggen muß um eine Datenbankabfrage zu starten. PHP verwaltet die Connections intern und hält diese offen.

Oftmals kommt es vor, daß einige Verbindungen einfach nicht beendet werden, oder (z.B. auf vServern) der Speicher ausgeht oder MySQL irgendwann keine neue Verbindung herstellen will/kann.

Lösung:

Die Anzahl der persistenten Verbindungen kann man mit den Parametern <code>max_persistentcode> und <code>max_linkscode> regulieren. Wenn beide Werte auf <code>-1code> stehen, kann o.g. Problem auftauchen. Die passenden Werte muß man selbst anhand vom anfallenden Traffic/Hits ermitteln. Auf jedenfall muß <code>max_linkscode> deutlich höher sein als <code>max_persistentcode>. Sonst hat PHP keine Ausweichmöglichkeit mehr.

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

huschi, zuletzt 2006-01-03 12:55     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

Rubriken zu diesem Artikel
überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   0 von 5 (0 Bewertungen)

Artikel kommentieren

Kommentar von Mattes (2008-04-02 13:37:48):
werden die Parameter in der php.ini oder in der my.cnf gesetzt?

Kommentar von LKRgAoiClWBbtKzFIj (2013-02-07 16:05:39):
Hi,My Drupal websites are hoetsd with Dreamhost PS but it seems that MySql servers are super slow, do you know where I could move my databases only to get faster websites ?If I can find a fast MySql server will it be better even when websites and databases are not hoetsd on the same servers/hosting company ?Thanks for reply.