Mailinglisten-Archive |
Aloha, > ---------- > Von: Marco Rothley[SMTP:rothley_(at)_crpc.de] > > Betreff: Re: Mysql-Daemon + Performance > ...Datenbank, als apaches mod_perl (verwendest Du doch, wenn ich Deine Frage > richtig verstehe). Das Problem dabei ist, dass apache mit mod_perl recht > gross werden kann. Dummerweise ist auch jedes child so gross, so dass der > Server irgend wann mehr am swappen ist, als produktiv arbeiten kann. Die > Loesung ist: Man muss es irgendwie schaffen, zwei Apaches am laufen zu > haben. Den einen mit mod_perl fuer die dynamisch erzeugten Sachen und > einen > weiteren ohne mod_perl fuer alles was kein perl braucht (statische > html-Seiten, Bilder, ...). > Wenn bei mod_perl die Apache-Prozesse übermäßig groß werden, liegt das zu 99,999 % daran, daß der Perl- Programmierer das Prinzip von mod_perl nicht verstan- den hat und die zugehörige Doku nicht gelesen hat. mod_perl arbeitet ungefähr so: Jedes aufgerufene Perl-Programm wird nur einmal geladen und compiliert. Danach läuft es als UNTERPROGRAMM vom mod_perl (So wie eine Funktion in einem normalen Pro- gramm). D.h. während der Lebensdauer eines Apache-Prozesses (max_request_per_child oder so) wird jedes aufgerufene Perl-Script nur einmal compiliert und bleibt dann im Haupt- speicher !. Das Problem dabei : Alle Variablen bleiben erhalten. Es wird nichts aufgeräumt. NICHTS. GARNICHTS. Beispielscript: open(DAT, '>50_mb_textdatei.txt'); _(at)_zeilen = <DAT>; close(DAT); Wenn man 5 Serverprozesse hat, und jeder nur einmal das Programm ausführt, hat man plötzlich 5 Serverprozesse, die je mindestens 50 MB Hauptspeicher verprassen. Warum ? Weil _(at)_zeilen erhalten bleibt und erst beim nächsten Aufruf dieses Programms neu geladen wird ! Besser: open(DAT, '>50_mb_textdatei.txt'); _(at)_zeilen = <DAT>; close(DAT); .... (Programm) _(at)_zeilen=(); # Inhalt loeschen. Also nicht am Server schrauben, wenn der Fehler am Programmierer liegt ;-) Viele Grüße, Mathias --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive