Mailinglisten-Archive |
Kar-Wing Lau wrote: > Merkwürdig ist das schon, da alle mir bisher sagten, dass MySQL so schnell > ist, dass man es kaum bemerken würde. Das dachte ich auch, als wir Tests > fuhren und diese einen winzig kleinen Tick schneller waren. Erst später habe > ich das mit der .CGI- und der Modul-Version gelesen. Also waren das > anscheinend nur zufällige Streuungen. Anscheinend profitieren unsere Skripte > durch einen einzigen verwendeten MySQL-Tripel derart enorm, so dass es zu > solch drastischen Ergebnissen kommt. viel mehr als der MySQL-Connect fällt heir vermutlich der Aufwand für die Ausführung des CGI ins Gewicht für jeden Request passiert folgendes: - das Betriebssystem muß einen neuen Prozess anlegen und initialisieren - ... das PHP Executable laden - PHP initialisiert sich - ... und alle seine Module - Request wird ausgeführt - PHP de-initialisiert alle Module - ... und sich selbst - das Betriebsystem entsorgt den Prozess - dazu kommt noch die Datenübergabe vom und zum Webserver bei einem Servermodule, egal ob multithreaded wie beim ISAPI oder multiporcess wie beim UNIX-Apache, entfallen dagegen - das Anlegen und Entfernen eines Prozesses durch das Betriebsystem - das Laden des PHP Executables - die Datenübergabe zwischen Webserver und Unterprozess - und die Initialisierung von PHP und seinen Modulen die Verteilung von Requests auf mehrere Prozesse statt mehrerer Threads beim UNIX-Apache bringt je nach Scheduler Performancevorteile und schützt vor Abstürzen und Speicherlecks, da die einzelnen Serverprozesse sich keinen gemeinsamen Speicher teilen (und so auch nicht gemeinsam abstürzen) und nach einer definierten Anzahl von Requests terminieren und durch 'frische' Prozesse ersetzt werden (so können Memory Leaks nicht allzusehr durchschlagen, sozusagen Garbage Collection auf die harte Tour). Nachteil der Verteilung auf mehrere Prozesse ist, das diese sich bestimmte Resourcen wie z.B. Datenbank-Connects nicht teilen können und man sich nicht darauf verlassen kann, das alle Requests eines Benutzers von demselben Prozess bearbeitet werden ... -- Hartmut Holzgraefe hartmut_(at)_six.de http://www.six.de +49-711-99091-77 Besuchen Sie uns auf der Systems in München , Halle C2, Stand 126
php::bar PHP Wiki - Listenarchive