phpbar.de logo

Mailinglisten-Archive

[php] Re: [php] =?iso-8859-1?Q?result_?= =?iso-8859-1?Q?Index_=FCbergeben?=

[php] Re: [php] result Index übergeben

Björn Schotte php_(at)_phpcenter.de
Fri, 27 Jul 2001 22:36:09 +0200


* Norbert Pfeiffer wrote:
> - verwendest Du pconnect($host, $user, $pass);
>   bleibt die Verbindung zu MySQL erhalten.

Im Falle des Apache aber nur im gleichen httpd-Prozess:

   Apache
   |
   |--> Apache (A)
   |
   |--> Apache (B)
   |
   |--> Apache (C)
   |
   .
   .
   .
   

Kommt der erste Request auf Apache Prozess A, wird
dort eine MySQL-Verbindung erzeugt und nach Beenden
des Requests beibehalten:

      Apache
      |  
(HUP) |--> Apache (A)
      |
      |--> Apache (B)
      |
      |--> Apache (C)
      |
      .
      .
      .
   
(HUP != HangUp, sondern Tripel aus DB-Host, DB-User
und DB-Passwort)

Kommt ein zweiter Request zufällig auf den _gleichen_
Apache-Prozess und erzeugt das PHP-Script einen Connect
zur Datenbank mit den _gleichen_ DB-Parametern, so kann
diese DB-Connection verwendet werden.

Landet der Request auf einem anderen Apache-Prozess, der
noch keine Verbindung zu MySQL hat, muß eine neue erzeugt
werden. Gleiches gilt, wenn der Request zwar zum Apache-
Prozess A gelangt, das PHP-Script jedoch ein Tripel H2U2P2
zur Datenbank connected.

D.h. du hast im ungünstigsten Fall MaxClients * Anzahl
der unterschiedlich vorkommenden User/Passwort-Kombinationen
mysqld-Prozesse, was dir die Maschine in den Swap-Space
und damit in den Tod treiben kann.

http://www.koehntopp.de/kris/artikel/webtune/ erklärt
das ganz schön; bei http://www.php.net/manual/de/features.persistent-connections.php
wird es IMHO nicht so schön erklärt.

(Man korrigiere mich.)
-- 
PHP Schulungen und                        | International PHP Conference
Schulungsmaterial:                        |             05. - 07.11.2001
http://thinkphp.de/                       |      Astron Hotel, Frankfurt
http://rent-a-phpwizard.de/schulungen.php |  http://www.php-kongress.de/


php::bar PHP Wiki   -   Listenarchive