Juergen Stein: apache + mod_perl - Erfahrungen/was bringt es an Speed

Hallo,

"wir" betreiben hier einen Intranet Webserver auf einer 4-Prozessor HPUX mit 4Gb RAM. Zur Zeit arbeiten immer ~25 User gleichzeitig aktiv im Web, so das es zu 10-30 CGI-Aufrufen pro Sekunde kommt. 90% der Skripte sind in Perl geschrieben.

Im Moment ist es so das der Apache 5%-20% der Rechenleistung, keine 5% des RAM belegt, naja beim I/O schlägt er schon kräftiger rein.

Nun hoffe ich das mir irgendwer sagen kann was ich durch nutzen von mod_perl an Speed/Speicher usw sparen kannen.
Ich erhoffe mir eine bessere/schnellere response Zeit, weil das ewige neukompilieren ja wegfällt.

Vielleicht kann mir irgendwer mal seine "Benchmarks" verraten.

  1. Hallo,

    [...] Vielleicht kann mir irgendwer mal seine "Benchmarks" verraten.

    http://www.chamas.com/bench/index.html

    Benchmarks sind ja so eine Sache. Grundsätzlich ist mod_perl sicherlich zu empfehlen, da ja das Neu-kompilieren entfällt. Dadurch sinkt die IO und CPU Belastung (kein neuladen des Scripts und kein kompilieren).

    Wenn Du allerdings sehr rechenintensive bzw. IO-intensive Scripts, wie mächtige Datenbankabfragen, analysieren großer Dateien usw. Operationen hast, dann wirkt sich der einsatz von mod_perl nicht mehr so stark aus, da ja unter mod_perl die Abarbeitung der Scripts nicht höher als ohne ist.

    Nicht vergessen sollte man auch, daß es eventuell durch den Einsatz von mod_perl zu einer kompletten Überarbeitung des Codes kommen kann. mod_perl reagiert recht sensibel auf "quick & dirty hacks", da de facto das script nie beendet wird, sondern quasi als Unterprogramm des Servers behandelt wird. Globale Variablen, die einfach so verwendet werden, nicht geschlossene Filehandles usw. können dann plötzlich unangenehme Folgen haben, während dies jetzt bei Dir tadellos funktionieren kann.

    Wenn Du allerding jetzt schon recht sauber gearbeitet hast ('-w' und 'use strict'), dann sollte es auch keine Probleme geben.

    Und noch was:
    Solltest Du mit Datenbanken arbeiten, bei denen der Connect zeitintensiv ist, dann kann Dir mod_perl auch hier recht gut helfen, da dann die Datenbankverbindungen über den Scriptaufruf erhalten bleiben können (Apache::DBI).

    Grüße
      Klaus