fastcgi vs mod_php5

  • Servus, ich bin's mal wieder!


    aktuell habe ich auf meinem vServer Bronze (200MB RAM) einen Lighttpd, PHP5(über fastcgi), einen MySQL-Server, einen Dovecot-Server und einen Postfix am laufen, um einen gut ausgestatteten Internet-Server nutzen zu können. Etwas Sorge bereitet mir nun immer der Blick auf ein

    Code
    free -m

    , das mir bescheinigt, dass mein RAM voll ist.

    Code
    htop

    schreibt das den 10 PHP-FastCGI-Prozessen zu, die jeweils 8% des Speichers versaugen (8% * 10 = 80% ...). Mir ist nämlich aufgefallen, dass FastCGI auch dann RAM saugt, wenn gerade niemand auf der Website ist, es also keine PHP-Scripte zum parsen gibt.
    Nun stellt sich dabei die Frage: Ist PHP generell so speicherhungrig oder liegt das an meiner Konfiguration? Wäre ich mit mod_php5 besser dran als mit einem fastcgi-PHP?


    Mit freundlichen Grüßen,
    domibay

  • mod_php ist auf jeden Fall schonender, eine Alternative könnte auch noch CGI sein, also ohne andauernd laufende Prozesse. Das wäre dann allerdings deutlich langsamer als mod_php. Vorher solltest du dir auch Gedanken im Bezug auf die Sicherheit machen. z.B. gefährliche Funktionen (Shell/Prozess Funktionen usw.) deaktivieren. Da gibt es doch einige Unterschiede zwischen den verschiedenen PHP Implementationen, da bei mod_php alles mit dem User des Webservers gestartet wird! ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Sicherheit passt, da hab ich ein suExec am laufen + chroot für den www-data.
    Ab wann macht ein mod_php5 Sinn? Ich meine, da muss ja bei jedem Script wieder der PHP-Interpreter in den Mem geladen werden, was ja doch seine Zeit dauert. FastCGI hat genau eben diesen Vorteil, dass es ständig quasi als Daemon läuft. Wäre es nicht auch eine Zwischenlösung, wenn ich einfach die fastcgi-Prozesse auf 2 Stück beschränke? So einen großen Nutzeransturm muss meine Seite nun wirklich nicht bewältigen...

  • Zitat von domibay;34416

    Wäre es nicht auch eine Zwischenlösung, wenn ich einfach die fastcgi-Prozesse auf 2 Stück beschränke?


    Klar, warum auch nicht? Die Ausführung eines Requests sollte je nach verwendetem PHP-Script auch nicht ewig dauern, du kannst damit also auch durchaus einiges bewältigen :)


    mod_php macht halt nur Sinn, wenn ein Großteil der Anfragen (CSS, JS und Bilder eingerechnet) von PHP abgearbeitet werden müssen.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Okay, ich hab jetzt die Prozessanzahl auf 2 gedrosselt und sofort 100MB RAM gewonnen. Kann ich jedem empfehlen, der nicht auf ein modernes FastCGI-System verzichten, aber trotzdem Resourcen sparen möchte.