[Vienna-pm] mod_perl + speicherproblem
Marinos Yannikos
mjy at geizhals.at
Thu May 22 09:45:54 PDT 2008
max demmelbauer schrieb:
> ./webtek console (was einfach nur den ganzen applikation-code laedt, und
> eine command-zeile bereitstellt) bei mir lokal auf einem IC2D 20MB, und
> auf der athlon64 debiankiste 40MB.
32bit vs. 64bit Perl wohl (8 byte pointer, alignment, ...), obwohl
Faktor 2 da eher der worst case sein sollte.
> ich versteh einfach nicht:
>
> - erstens: wieso schon mal der unterschied von 20MB zwischen den
> systemen
> - zweitens: wieso braucht der apache prozess nochmal 80MB mehr fuer
> denselben code?
> - der unterschied zw test/live betrieb im speicher ist auch schon
> direkt nach dem starten (also unabhaengig von den requests)
Dürfte dann wohl auch auf 32/64 bit zurückzuführen sein, evtl. auch
andere Perl-Version?
> - mir ist es auch egal, der prozess kann soviel brauchen wie er
> will! aber wenn der server immer wieder crached ist es halt sch**e..
> grrr...
Wir haben schon lange ein Setup wie in
http://perl.apache.org/docs/1.0/guide/strategy.html#One_Plain_Apache_and_One_mod_perl_enabled_Apache_Servers
beschrieben, damit können wir die mod_perl Apaches auf 10-15 limitieren
und trotzdem einige 100 Requests parallel abarbeiten (auf statische
Daten z.B.).
Ansonsten kannst du wohl auch mal FastCGI anschauen, das trennt die
fetten Perl-Prozesse sauberer vom Apache als mod_perl. Ich warte
einstweilen auf ein Perl mit Speichermanagement, das die letzten 30
Jahre Forschung in dem Gebiet nicht verschlafen hat. ;-)
(zur Not auch eine Version mit drangepfrimmeltem
http://www.hpl.hp.com/personal/Hans_Boehm/gc/)
> aber irgendwo ist ganz sicher ein fehler bei uns im code, und der bringt
> mich an den rand des nervenzusammenbruchs, wenn ich am wo-ende 5x den
> server restarten muss ;)
Du kannst ja mal die Apache-PIDs mitloggen
(http://httpd.apache.org/docs/1.3/mod/mod_log_config.html - %P) und dann
im access.log nachschauen, welche Requests einen bestimmten Prozess so
aufgeblasen haben. Vielleicht findest du ja ein schönes memory leak (ist
bei mod_perl sehr einfach zu erzeugen, nachdem die globalen Variablen ja
bleiben).
> eine vermutung ist auch ein `cmd` aufruf im applikationscode (darf/soll
> ich sowas im mod_perl env aufrufen?)
http://perl.apache.org/docs/1.0/guide/performance.html#Forking_and_Executing_Subprocesses_from_mod_perl
Gilt natürlich auch für backticks...
MfG,
-mjy
--
Dipl.-Ing. Marinos Yannikos, CEO
Preisvergleich Internet Services AG
Obere Donaustrasse 63, A-1020 Wien
Tel./Fax: (+431) 5811609-52/-55
Handelsgericht Wien - FN 197241K - Firmensitz Wien
More information about the Vienna-pm
mailing list