Mehr Leistung im WWW: Nginx statt Apache nutzen

ZDNet führt einen Kurztest durch, um die Performance-Unterschiede zu messen. Dazu werden zwei identische Amazon-EC2-High-Memory-Quadruple-Extra-Large-Instanzen mit einem Wiki aufgesetzt, um eine typische LAMP-Umgebung zu erhalten. Die großzügig dimensionierte Hardware kann dabei keinen Bottleneck darstellen. Es kommt das offizielle Image von Ubuntu-Server 11.10 (Oneiric Ocelot) 64-Bit zum Einsatz.

ZDNet verwendet MediaWiki Version 1.18.1, die Software, die auch Wikipedia nutzt. Alle sonstigen Komponenten stammen aus den Ubuntu-Repositories. Als Datenbank dient MySQL 5.1.58-1. PHP liegt in der Version 5.3.6-13 vor. Eine Instanz wird mit Apache 2.2.20 bestückt. Die zweite erhält stattdessen Nginx 1.0.5.


Für einen Performance-Test ruft ZDNet 1000 Mal die Versionsseite eines frisch installierten Wikis auf.

So lange man als einzelner User mit dem Wiki arbeitet, reagieren beide Instanzen flott und machen keine Probleme. Sobald aber mit dem Apache-Benchmarktool ab ein wenig Last simuliert wird, zeigen sich die Unterschiede. Apache wurde so konfiguriert, dass maximal 50 Prozesse geforkt werden dürfen. Nginx wurden statisch 10 Threads zugestanden.

Da Nginx anders als Apache PHP nicht durch Forking, sondern nur über FastCGI aufrufen kann, wurden PHP maximal 50 Forks erlaubt, um eine vergleichbare Konfiguration wie unter Apache zu erhalten.

Im Benchmarktest wurden immer genau 1000 Requests an die URL der Versionsseite des Wikis gestellt. Wenn dabei 100 Anfragen gleichzeitig gestellt werden, ist Apache etwas schneller als Nginx. Apache arbeitet den Benchmark in 15,904 Sekunden ab. Nginx braucht 16,822 Sekunden. Allerdings kommt Nginx mit deutlich weniger Speicher aus. htop meldet, dass während des Tests 1229 MByte vom Gesamtsystem beansprucht werden. Unter Apache sind es 1922 MByte.

Stellt man jedoch 200 simultane Requests, sieht es bereits anders aus. Die Performance von Nginx lässt kaum nach und der Benchmark endet nach 18,346 Sekunden. Apache benötigt hingegen 26,962 Sekunden und 2248 MByte Speicher. Nginx gibt sich mit 1251 MByte zufrieden.

Geht man noch einen Schritt weiter, und stellt 300 Anfragen gleichzeitig, kommt es bei beiden Servern zu Fehlern. Es werden nicht mehr alle Requests beantwortet, was aber bei der Beschränkung auf 50 Forks nicht verwunderlich ist. ab meldet im Test 11 von 1000 unbeantwortete Anfragen unter Nginx und 41 von 1000 unter Apache.

Die Benchmarkzeiten sind bei Fehlern nur noch bedingt aussagekräftig, da sich die durchschnittliche Laufzeit durch Timeouts erhöht. Nginx kam mit 18,346 Sekunden aus. Apache brauchte 49,131 Sekunden.

Bei 200 simultanen Anfragen, also dem höchsten Maß an Parallelität, das beide Server in der gewählten Konfiguration noch fehlerfrei abarbeiten können, ist Nginx 46,9 Prozent schneller, braucht aber nur 55 Prozent des Hauptspeichers. Das sind durchaus beeindruckende Zahlen.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

2 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

2 Tagen ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

2 Tagen ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

2 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

2 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

3 Tagen ago