Lighttpd: Was ist an Lighttpd so besonders?
Dieser Artikel soll der Anfang einer kleinen Lighttpd Artikelreihe sein und hoffentlich so manche Fragen über diesen Webserver aus der Welt schaffen.
In diesem ersten Artikel geht es um die Eigenschaften die Lighttpd anders macht als der Apache2.
Bei Lighttpd und Apache2 handelt es sich um Webserver. Diese Programme liefern Webseiten aus wie diese die Sie gerade lesen. Der alt eingesessene Apache ist einer der verbreitetsten Webserver weltweit. Doch inzwischen gibt es mehrere Webserver die dem Apachen das Wasser reichen können. Lighttpd ist einer von denen.
Hauptsächlich wird der Apache2 mit dem Prefork-Module genutzt. Dieses Modul erstellt mehrere Unterprozesse (Threads) vom Apachen welche sich dann jeweils immer um eine Verbindung zur Zeit kümmern können. beim Lighttpd sieht das anders aus. Lighttpd verarbeitet die Anfragen und Verbindungen in einem asynchronen System.
Der Apache2 muss also für jede aktive Verbindung einen Unterprozess haben welcher diese abarbeitet. Problem bei der Sache ist dass dies viel RAM und auch Rechenzeit benötigt, was die RAM-Größe zum beschränkenden Faktor macht. Wenn der Apache auch noch mit mod_php läuft wird der Arbeitsspeicherverbrauch sogar noch größer.
Beim Lighttpd sieht das anders aus. Dieser benötigt immer nur einen Prozess, egal wie viele Verbindungen zu bearbeiten sind. Bei vielen Verbindungen fängt Lighttpd zwar auch an Unterprozesse zu erstellen, doch das passiert nicht auf Prozessebene, sondern durch Multithreading was auch noch schön auf mehrere CPUs skalieren kann.
Aus diesen grundlegenden Eigenschaften von Apache2 und Lighttpd können wir zusammengefasst folgende Schlüsse ziehen:
Apache2:
- Viele Prozesse
- Viel RAM
- Wenige max. Verbindungen
Lighttpd:
- Ein Prozess
- Wenig RAM
- Viele max. Verbindungen
Für den Apachen gibt es eine sehr größe Auswahl an Plugins/Modulen was Ihn sehr vielseitig macht. In Verbindung mit mod_php ist PHP auch sehr schnell.
Der Lighttpd ist noch recht jung und bietet daher eher nur Standard Plugins/Module was sein Einsatzzweck etwas eingrenzen kann. Aber auch hier lässt sich PHP über FastCGI sehr schnell betrieben was sogar noch mehr Vorteile wie entfernte FastCGI-Server erlaubt usw.
Beispiel:
Zum Schluss möchte ich einmal ein Verwendungsbeispiel der Webserver geben welches Ihre Vorteile ausnutzt.
Youtube nutzt als Frontend Webserver den Apachen, weil dieser zum generieren des Dynamischen Inhalts am geeignetsten ist. Doch die Statischen Dateien wie Bilder, CSS, Javascript und sogar die Videos werden von Lighttpd gesendet da dieser im Vergleich zu Apache mehr Verbindungen handeln kann und eine bessere Netzwerkauslastung erreicht.
Wer also eine gut besuchte Seite hat welche unter Performanceproblemen leidet könnte sich ja mal daran versuchen seinen Statischen Content auf einen zweiten Server/andere IP auf dem Lighttpd läuft zu verlagern. Weil, warum sollte man den Apachen mit Verbindungen quälen welche nur simple Bilder versenden und dadurch unnötig RAM brauchen?
Julius Beckmann
05.08.2008
No related posts.