[UPDATE] Benchmark Appserver.io

Ich wurde auf ein äußerst interessantes Projekt aufmerksam, nämlich Appserver.io. Appserver.io ist ein Webserver, welcher komplett in PHP geschrieben wurde und noch einige Zusatzfeatures mit sich bringt. Die Grundidee leuchtet ein: Wenn ich eine PHP-Software wie TYPO3 CMS betreibe, warum nicht gleich komplett im PHP Kontext arbeiten und so vielleicht den Overhead des Webservers, wie Apache/Nginx, minimieren. Ob Appserver aber wirklich schneller ist als das „alte“ Apache + PHP Gespann, wollte ich nun einmal testen. Dazu muss natürlich gesagt werden, dass Appserver in einer noch recht frühen 1.0.1 Version vorliegt und gegen eine Software antritt, welche bereits 20 Jahre alt ist.

Durchgeführt habe ich den Benchmark mit ApacheBench (kurz: ab), welches die Seite insgesamt 200 mal abruft und jeweils 5 Requests gleichzeitig versendet. Hinter der URL befand sich ein TYPO3 Neos im Production Context. Beide Maschinen waren identische Vagrant-Maschinen und hatten jeweils 2GB Ram und 2 CPU-Kerne zur Verfügung. Zudem haben beide dieselbe php.ini Datei verwendet und auch dieselbe php5-fpm Einstellung.

info heading

info content

Wir sehen also ganz deutlich, dass Appserver.io doch deutlich langsamer ist, als Apache2 + php5-fpm. Trotzdem ist das Projekt weiterhin sehr interessant und vielleicht schaffen es die Entwickler ja noch an der Geschwindigkeitsschraube zu drehen, denn dann könnte dieses Projekt Apache2 tatsächlich ersetzen. Vor allem die Möglichkeit, den Webserver ganz leicht erweitern zu können, ohne tiefe Kenntnisse von C, C++ oder Ähnlichem, macht dieses Projekt so interessant.

Update vom 10.04.2015: Über eine Servlet-Engine in Appserver.io gibt es die Möglichkeit, eine PHP-Datei komplett aus dem RAM auszuführen. Dies wollte ich natürlich auch testen. Leider ist es im Moment nicht möglich, Neos oder ein anderes CMS per Servlet auszuliefern. Also habe ich einen eigenen Servlet geschrieben und dort per Zufall die Fakultät einer Zahl zwischen 10 und 40 berechnen lassen. Eine Vergleichbarkeit zu einem vollwertigen CMS ist hier aber dennoch mindestens fraglich. Trotzdem zeigt die Grafik das Potential dieser Technik und ich würde es sehr begrüßen, wenn dies auch bald mit einem kompletten CMS möglich wäre.

info heading

info content

Ich habe hier nochmal die Ergebnisse in Textform angefügt:

3 Gedanken zu “[UPDATE] Benchmark Appserver.io

  1. Hallo Patrick, vielen Dank für den Test und deine positive Einschätzung. Wir wissen natürlich, dass wir aktuell noch nicht ganz an die Performance von Apache mit PHP-FPM ran kommen. Selbes gilt natürlich auch für Nginx. Wir gehen aber davon aus, dass wir mit unserem Update auf PHP 5.6, kommt mit der Version 1.1, einen deutlichen Schritt in die richtige Richtung machen werden. Erste Tests stimmen uns hier schon sehr positiv. Insgesamt war aber auch nicht die Intention den schnellsten Webserver im Markt zu bauen sondern wie ja auch von dir schon angerissen eine ganzheitliche PHP-Infrastruktur Lösung. Wenn man Performance Tests macht dann wird es insbesondere dann spannend, wenn man im appserver.io Anwendungen vorab in einem Servlet initialisiert und das Bootstrapping wegfällt. Dann ergeben sich schon deutliche Performance Vorteile. Leider klappt das halt mit den meisten Applikationen aktuell so noch nicht, da diese nicht für eine solche Infrastruktur entwickelt wurden. Wir sind aber guter Dinge, dass sich hier noch einiges tun wird. Parallel arbeiten wir gerade daran die Performance auch für Legacy-Apps zu verbessern. Einfach dran bleiben. In der Version 1.0.2 haben wir zum Beispiel das Handling und auch die Performance unter Windows sehr stark verbessert. Insgesamt ist unser Anspruch momentan eine vollumfängliche Infrastruktur-Lösung für PHP zur Verfügung zu stellen die für den Entwickler einfach im Handling ist. So ist die Installation auf dem Mac aber auch unter Windows in der nächsten Version mit Sicherheit einfacher als alle anderen Lösungen aktuell und trotzdem steht einem ein Set an Features wie zum Beispiel eine Message Queue out of the box zur Verfügung. Danke nochmal für den Bericht. Bei Fragen oder Anregungen kannst du dich natürlich gerne auch an uns wenden.

    Stefan

  2. Hallo Stefan,
    vielen Dank für deine Rückmeldung. Tatsächlich überarbeite ich den Artikel gerade, um das fehlende Thema „Servlet“ noch hinzuzufügen.
    Auch ging es hier in dem Artikel nur um die Performance und die ist eigentlich positiv zu beurteilen, immerhin sind es ja „nur“ 50ms unterschied zum 20 Jahre alten Apache. Das das Projekt noch weiter Vorzüge hat, steht schon auf meiner „Artikel-noch-zu-schreiben“-Liste 🙂
    Nochmal vielen Dank für deine Rückmeldung.

    • Hallo Patrick,
      cool da sind wir schon gespannt was du da dann berichten kannst. Ich finde auch, dass die Performance shcon gar nicht so schlecht ist. Vor allem wenn du appserver.io mal installierst und z.B. auf dem Mac mit dem Standard Apache mit mod_php vergleichst bist du ohne etwas zu machen schon deutlich schneller und die Installation ist ziemlich einfach. By the way wir haben einen Gitter Chat also wenn du Fragen hast kannst du die auch da rein hauen 🙂

      https://gitter.im/appserver-io/appserver

      Stefan

Kommentar verfassen