/dev/joschi

Ramblings, rants, and rabid speculations

Pfundskerl Gegen Leichtgewicht

Im letzten Blogpost habe ich über die Migration von Apache 2.0 zu Pound (http reverse-proxy) und lighttpd (lightweight httpd) geschrieben. Jetzt musste auch Pound dran glauben. Das hat zwei Hauptgründe:

Zum einen unterstützt Pound kein IPv6. Der Autor hatte dies zwar offenbar geplant, die Implementierung jedoch auf (viel) später verschoben. Zum anderen war ich mit der Performanz, die Pound erbracht hat, nicht ganz zufrieden. Ich bin mir nicht sicher, ob es an meiner Konfiguration oder an anderen Faktoren lag, aber Pound konnte weder mit der Leistung von Apache mit mpm-worker, noch der von lighttpd mithalten.

Jetzt verrichtet eine Instanz von lighttpd mit mod_proxy Ihren Dienst als Reverse-Proxy auf diesem Server. Die Konfiguration wurde auf das Nötigste beschränkt, so dass der Prozess möglichst wenig Resourcen benötigt. Und siehe da, kaum hatte ich Pound durch lighttpd ersetzt, schon meldet ab2 (Apache Bench) fast den vierfachen Durchsatz.

Wenn das mal keine Verbesserung ist: Ein Programm weniger auf dem Server, um das ich mich kümmern muss und mehr Leistung dafür erhalten. Wenn doch nur alles so einfach wäre. ;)

Bei meinen Tests habe ich aber leider feststellen müssen, dass der Event-Handler “linux-sysepoll” (empfohlen für Linux 2.6) wohl nicht ganz fehlerfrei mit mod_proxy zusammenarbeitet. Ich erhielt jedenfalls laufend Segfaults. Als ich den Standard Event-Handler “poll” wieder eingetragen hatte, waren diese auf mysteriöse Weise verschwunden.

Lediglich eine Kleinigkeit stört mich jetzt noch an dieser Lösung. Ich erhalte viele Header doppelt, einmal vom Frontend (dem Reverse-Proxy) und einmal vom Backend (den tatsächlichen Webservern). Wenn ich das noch beseitigt bekomme, bin ich glücklich. Aber man kann leider nicht alles haben…

Comments