Mailinglisten-Archive |
Martin Spuetz schrieb: > Sebastian Mendel wrote: >> Martin Spuetz schrieb: >>> Norbert Pfeiffer wrote: >>>> Am Donnerstag, den 14.02.2008, 11:31 +0100 schrieb zwelch: >>>>>> bei einigen providern laeuft php (auf shared servern) als >>>>>> cgi-variante >>>>>> (also unter deinem eigenen user). >>>>> Nachteil dieser Methode: Performance Verluste )-: >>> IMO: Nope, wenn es sich um fastcgi handelt ist PHP als CGI schneller, >>> bzw. der Apache ist durch das Threading schneller. Du könntest höchstens >>> Memory-Probleme bekommen, aber Speicher ist ja nicht mehr so teuer. >> startet der Apache nicht eh mehrere Threads, oder was ist das alles was mir >> ps -ax da anzeigt? > > Ich bin da jetzt auch nicht so 100% bewandert, aber hier z.B. die > Ausgabe mit Apache 1.3 prefork mit mod_php5 (pstree): > > ├─httpd───100*[httpd] > > Das sind aber alle httpd-Prozesse, also geforkte Prozesse. > > Child-Threads werden so dargestellt: > > |─mysqld_safe───mysqld───17*[{mysqld}] > > Hast du also einen Apache mit mod_php5 wird der wahrscheinlich als > prefork laufen, dann hast du keine Threads sondern gefork()te Prozesse. > > Apache 2.2 mit fastcgi sieht z.B. so aus: > > ├─httpd─┬─3*[httpd───26*[{httpd}]] > │ └─httpd───58*[php-fcgi] > > Hab jetzt gerade nochmal bei Wikipedia geschaut: > "Gegenüber einem Prozess wird ein Thread auch als Leichtgewichtprozess > (Solaris) bezeichnet, da die Umschaltung zwischen Prozessen mehr Aufwand > (Rechenzeit) im Betriebssystem erfordert als die Umschaltung zwischen > Threads eines Prozesses." ah, na ich hab fast sowas vermutet ... ;-) okay ... aber wo liegt, rein aus der Sicht des PHP-Scripts, der Vorteil eines Threads gegenüber einem Fork? nachdem ich mir jetzt auch mal die Wikipedia-Artikel über Forks und Threads angeschaut habe, sehe ich nicht wirklich einen Vorteil für Threads gegenüber eigenen Prozessen/Forks? ich würde sogar fast vermuten das Prozesse/Forks besser parallel arbeiten als Threads, dafür aber eventuell mehr Resourcen verbrauchen. hab auch mal gesucht nach "fork vs. thread" ... mhm "the stevens' book says don't use threads. that's good enough for me. http://www.radwin.org/michael/blog/2004/01/threads_considered_harmful.html" scheint mir tendenziell eher in Richtung Fork zu gehen bei Servern ... aber um mal zurückzukommen zu deiner Aussage: > IMO: Nope, wenn es sich um fastcgi handelt ist PHP als CGI schneller, bzw. der Apache ist durch das Threading schneller. kann ich nach etwas suchen und lesen nicht ganz nachvollziehen, da muss doch FastCGI erst für jeden Aufruf ein Thread starten, hingegen ist bei mod das PHP schon bereit und wartet (außer es stehen keine freien Forks mehr zur Verfügung, und der Apache muss erst neue starten, aber das kann ihm bei FastCGI ja auch passieren), oder? > Ich hab hier auch noch einen Server auf dem über 500 vhosts mit mod_php5 > ohne Probleme laufen. na mein ich doch ... ;-) -- Sebastian
php::bar PHP Wiki - Listenarchive