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

Bericht: Samsung plant massiven Stellenabbau

In einigen Unternehmensbereichen sind angeblich bis zu 30 Prozent der Beschäftigten betroffen. Samsung spricht in…

5 Tagen ago

Kritische Lücken in Adobe Reader und Acrobat

Sie erlauben eine Remotecodeausführung. Betroffen sind alle unterstützten Versionen von Adobe Reader und Acrobat für…

5 Tagen ago

Google stopft weitere fünf Löcher in Chrome 128

Betroffen sind Chrome für Windows, macOS und Linux. Das von den Anfälligkeiten ausgehende Risiko stuft…

5 Tagen ago

Steuerstreit mit der EU: Apple muss 13 Milliarden Euro nachzahlen

Der Gerichtshof der Europäischen Union entscheidet „endgültig“ über den Rechtsstreit. Dem Urteil zufolge sind von…

5 Tagen ago

September-Patchday: Microsoft schließt kritische Zero-Day-Lücke in Windows Update

Sie betrifft ältere Versionen von Windows 10. Ein weiterer kritischer Bug steckt aber auch in…

6 Tagen ago

CloudEye für 18 Prozent aller Malware-Infektionen in Deutschland verantwortlich

Der Downloader nimmt Windows-Rechner ins Visier. RansomHub festigt seine Position als führende Ransomware-Gruppe weltweit.

6 Tagen ago