PHP-Beschleuniger im Vergleich
Voll Karacho
von Michael Walter
Erschienen im Linux-Magazin
2005/05
Wenn die Skripte auf dem eigenen Webserver träge werden, liegt das nicht immer an schlecht geschriebenem Code. Als Alternative zu mehr oder schnelleren CPUs bieten sich PHP-Beschleuniger an, die dem Apache mit Code-Optimierung und intelligentem Caching zur Seite stehen.
PHP ist die Nummer eins unter den Web-Skriptsprachen. Da ist es nur natürlich, dass Firmen und Privatprogrammierer sogar hochkomplexe Anwendungen damit realisieren. Oft fangen sich die Inter- oder Intranetbetreiber mit den interpretativ abzuarbeitenden Skripten massive Performanceprobleme ein. Als Alternative zu einem Hardware-Ausbau analysiert der folgende Test den Geschwindigkeitsgewinn und die Features von vier PHP-Softwarebeschleunigern.
In einem Standard-LAMP-System läuft die PHP-Verarbeitung so: Sobald der Apache auf PHP-Code trifft, übernimmt sein PHP-Modul Mod_php die Regie und übersetzt die Quelle in einen abstrakten Byte-Zwischencode. Die virtuelle Maschine von Mod_php interpretiert den Code und kommuniziert die Ein- und Ausgaben an den Apache zurück.
Die vorgestellten Beschleuniger sind ausnahmslos PHP-Erweiterungen, laufen also im selben Prozesskontext und damit mit den gleichen Rechten wie der Webserver, genauer: wie dessen PHP-Interpreter. Neben Apache 1.3 und 2.0 (Prefork-MPM) mit Mod_php unterstützen die Produkte alle Fast-CGI-konformen[1] Server, etwa Lighttpd und Zeus.
Drei Strategien
Prinzipiell sind drei Beschleunigungsstrategien bekannt, die die vorgestellten vier Produkte mehr oder minder intensiv betreiben und kombinieren:
-
Zunächst versuchen alle vier die Qualität des
erzeugten Bytecode zu analysieren und auf Geschwindigkeit zu
optimieren. Die dynamische Natur von PHP scheint diese
Bemühungen allerdings auf einfache Peephole-Optimierungen zu
beschränken: Der Optimierer betrachtet nur einige wenige
Instruktionen auf einmal und versucht bestimmte Bytecode-Sequenzen
durch schnellere zu ersetzen, beispielsweise »$i++;« durch »++$i;«.
-
Zum anderen betreibt jeder Beschleuniger als Shared Memory
einen gemeinsamen Bytecode-Cache, der den übersetzten Bytecode
aller Kindinstanzen des Webservers sehr viel länger
zwischenspeichert, als es der Betriebsablauf eigentlich erfordern
würde. PHP orientiert sich nämlich stark am
Request-Response-Modell von HTTP: Darum erstreckt sich die
Lebensdauer eines PHP-Skripts - und damit seines Bytecode -
normalerweise nur über den Zeitraum zwischen Aufruf im Browser
und der Ausführung der letzten Skriptzeile. Das bedeutet, dass
Mod_php ohne Bytecode-Cache-Unterstützung ein Skript bei jedem Aufruf neu einlesen und übersetzen muss.
-
Einige Beschleuniger stellen den PHP-Entwicklern ein API zur
Verfügung, über das sie in ihren Skripten beliebige
Daten, beispielsweise komplexe Ausgaben,
Performance-förderlich im Shared Memory vorhalten dürfen.
Zend Performance Suite
Die Zend Performance Suite ist neuerdings Teil der Zend Platform[2]. Zu den Gründern der Firma zählen die PHP-Architekten Andi Gutmans und Zeev Zuraski. Daher verwundert es nicht, dass sich Zend selbstbewusst "The PHP Company" nennt. Vorbildlich: Als einziges Produkt im Testfeld installiert sich die Performance Suite über ein Skript. Es fragt die Pfade von Apache und PHP sowie den Ort der Lizenzdatei ab.
Etwas Beachtung erfordert die mitgelieferte Version des Optimizer. Die anfänglich getestete war nicht mit PHP 4.3.10 kompatibel. Das Installieren des neuesten Optimizer[3] löste das Problem. Neben Bytecode-Caching und einem guten Optimierer speichert die Suite auch die Ausgaben von dafür geeigneten Skripten zwischen und komprimiert sie.
Alle diesbezüglichen Einstellungen lassen sich in einer Web-basierten Konsole vornehmen (siehe Abbildung 1) und mit dem integrierten Benchmark vergleichen. Der Entwickler kann Zwischenergebnisse oder Teilausgaben durch spezielle Anweisungen zwischenspeichern lassen (Partial Page Caching). Das Benutzerhandbuch[4] enthält (nicht nur) hierfür Informationen und Beispiele.

|
Abbildung 1: In der Weboberfläche der Zend Performance Suite nimmt der Entwickler bequem Performance-Optimierungen vor.
|

|
Abbildung 2: Turck MM Cache hat wie die Zend-Suite ein Administrationsfrontend - es bietet aber merklich weniger Möglichkeiten.
|
Zum Lieferumfang gehört auch der Zend Download Server, der die Serverbelastung beim Laden großer Dateien reduziert. Die Zend-Suite ist mit 995 US-Dollar pro Jahr für eine CPU das einzige kostenpflichtige Produkt im Test. Beim Registrieren hält die Homepage[2] eine kostenlose Evaluationsversion bereit.
| Whitepaper |
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|