NGINX wirklich schneller als Apache?

Hallo,

Ich habe drei Anbieter ausführlich mit Shopware getestet.
 

Folgende Features zur Performance-Verbesserung waren in den Verträgen enthalten:

 

Anbieter 1:
Varnish
APCu-Cache
Zend OPcache
PHP 7
NGINX als reverse proxy server
MariaDB
SSD
 

Anbieter 2:
APCu-Cache
Zend OPcache
Cache teilweise (100MB) in tmpfs
NGINX als web server
PHP 7
memcached-Nutzung
HHVM (HipHop VM)
HTTP/2
Google Pagespeed
SSD

 

Anbieter 3:
KEIN APCu-Cache
Kein OPcache
Apache Server
MySQL-Datenbank
PHP 7
SSD

 

Nun habe ich bei allen drei Anbietern eine gleiche Shopware-Kopie eingespielt und unter Google Chrome, Firefox und Opera einen Speedtest durchgeführt.
Dieser geschah in der Art, dass mehrere (aber bei allen Anbietern die gleichen in gleicher Häufigkeit) Seiten an verschiedenen Tagen und zu verschiedenen Tageszeiten aufgerufen wurden und dann der Durchschnitt der Ladezeit ermittelt wurde. Dabei wurde nur das Frontend berücksichtigt, was für meine Zwecke das Relevanteste ist. Ergebnis sieht wie folgt aus:

Anbieter 1 war der teuerste, dann kommt Anbieter 2 und bei weitem das günstigste Angebot mit den wenigsten Performance-Features ist Angebot 3.
Nun folgt das erstaunliche Ergebnis:

 

Durchschnittliche Ladezeiten der Anbieter:
Anbieter 1: > 2s
Anbieter 2: ~ 1.3s
Anbieter 3: ~ 1.2s

Wie kann es sein, dass der letzte Anbieter der schnellste zu sein scheint?
Ich habe auch mehrere Tabs hintereinander geöffnet (bis zu 96 Tabs innerhalb von unter einer Minute).
Auch hier gibt es bei letztem Anbieter keine besonders auffälligen Performance-Einbrüche.

Kann mir das jemand erklären.
Ich überleg nun, einfach bei letzterem Anbieter zu bleiben.
Ich bin mir aber unsicher, weil ich vermute, dass ich irgendetwas bei meiner Analyse übersehe(n haben muss).

 

MFG
Nils

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Moin, also diesen Test solltest du auf derm Server und nicht mit dem Browser machen. Ausserdem wäre noch zu klären welchen LAN-Verbindung, RAM und CPU und Einstellungen diese Server haben. Vor allem wär noch zu klären wie es sich unter Last verhält, z.B 20 Paralelle Bestellungen etc.

Hallo @Kenny‍ ,

welche Webserver-Software verwendet wird, ist bei den allermeisten Shopware-Situationen unerheblich hinsichtlich der Performance des Shops für den Endkunden. Andere Eigenschaften des Hostings sind entscheidender. Wenn Du einen solchen Test machst, schau auf die TTFB-Werte im Checkout und ohne HTTP-Proxy (also Bearbeitungsmodus in Shopware). Liegen die TTFB-Werte im Bereich von 300-900ms ist das in Ordnung. Ansonsten hat das Hosting nicht genügend „Power“ und daran ändert sich auch nichts, wenn Du von Apache auf ngnix wechselst. 

Dann musst Du bei den ganzen Shared-Hosting Angeboten einkalkulieren, dass Du nur zum Zeitpunkt des Tests die volle Rechenleistung zur Vergügung hast und zu anderen Zeiten die anderen Kunden auf dem Shared-Hosting einen Anteil an der Serverleistung beanspruchen. Der Shop wird dann langsamer. Der positive 3. Test könnte bei Shared Hosting zum Beispiel daran liegen, dass die anderen Kunden einfach wenig Rechenleistung beanspruchen. Ich würde dir daher immer zu einem System mit garantierten Ressourcen raten, vor allem, weil es diese schon ab ~15-20 Euro (managed nicht root!) gibt. Natürlich kannst Du Glück haben und bei einem günstigen Shared Hosting extrem gute Antwortzeiten bekommen, wenn die restlichen X Domains keine Besucher haben und du sozusagen den halben Server für dich alleine hast. 

APCu und OpcodeCache sollte schon vorhanden sein. Das wird sich auch im Backend positiv bemerkbar machen. Wie groß der Effekt im Frontend ist, hängt auch von Faktoren wie Anzahl der Besucher pro Zeiteinheit ab. 

Grundsätzlich ist es sinnvoll zu schauen, wie sich der Server bei 10 gleichzeitigen Besuchern verhält - loader.io oder ähnliche Dienste. Er sollte während des Tests für dich im Frontend noch erreichbar sein. In der Realität wird ein solches Ereignis für dich wahrscheinlich nicht auftreten. Im Endeffekt ist das der Test von 20 parallelen Bestellungen (s. @brettvormkopp‍ ) , aber 20 ist eigentlich ein zu hoher Wert. Wenn Du wirklich soviel Zugriffe und Kunden hättest, müsstest du nicht im Forum nach Lösungen suchen, sondern direkt jemanden beauftragen. Das Hostingpaket sollte erwartbare Lastspitzen abdecken und nicht visionäre Geschäftserfolge, sonst steigen die Ausgaben. Der loader.io Test mit 10 Nutzern ist schon mehr als genug.

 

 

 

 

@brettvormkopp‍

Tests direkt auf dem Server habe ich ebenfalls mit dem Script von http://www.php-benchmark-script.com/ durchgeführt mit etwa demselben Ergebnis.
Hierbei war Anbieter 1 noch langsamer als die anderen beiden Anbieter, Anbieter 2 war hierbei im Gegensatz zu dem anderen Testaufbau geringfügig (aber vernachlässigbar) schneller als Anbieter 3. Über LAN- RAM- und CPU lässt sich bei allen drei Shared Hosting-Anbietern nicht viel herausfinden - sprechen halt alle von besonders toller Marken-Hardware…
Bei paralleler Last hatte ich nur die Tests mit dem Aufruf von ca. 100 Detailbeschreibungen innerhalb etwa einer Minute durchgeführt. Mit den parallel durchgeführten Bestellungen habe ich aus praktischen Gründen bisher nicht durchgeführt, sollte doch aber Ähnliches ergeben, oder?

 

@ hth

Wenn der Shop im Bearbeitungsmodus ist, ist es aber normal, dass das grüne Häckchen bei APCU aktiviert und Zend OPcache aktiviert immernoch vorhanden sind, oder?

Wenn man alle drei Anbieter übrigens im Bearbeitungsmodus vergleicht, ist der Anbieter 3 bei weitem der Günstigste und auch der Schnellste.

Habe solch einen Bestelltest im Bearbeitungsmodus durchgeführt. Bei Anbieter 1 kann ich es nicht mehr testen, da bereits gekündigt.
Bei Anbieter 2 liegt der ttfb-Wert höher als von dir als akzeptabel angesehen und bei Anbieter 3 liegt er innerhalb des von dir als akzeptabel angesehenen Werts.

Die Server-Traffic-Schwankungen sind bereits berücksichtigt, da ich sehr viele Tests durchgeführt und davon dann den Durchschnittswert gebildet hatte.

 

Ich würde dir daher immer zu einem System mit garantierten Ressourcen raten, vor allem, weil es diese schon ab ~15-20 Euro (managed nicht root!) 

Wo denn? Bei welchen Anbietern gibt es sowas? Habe ich bisher zu dem Preis nicht gesehen. Bitte um Beispiele (außer 1&1 - mit denen will ich nie mehr was am Hut haben…) 

APCu und OpcodeCache sollte schon vorhanden sein. Das wird sich auch im Backend positiv bemerkbar machen.

Aber Anbieter 3 bietet beides nicht an und ist dennoch der Schnellste. Vielleicht nicht im Backend - das Backend ist mir aber nicht so wichtig verglichen mit dem Frontend. 
loader.io werde ich dann nochmal nutzen, bevor meine endgültige Hoster-Wahl fällt.

Hättest du zufällig auch eine Idee, weshalb mein Shop durch Verlagerung von einem Teil des Cache in ein tmpfs keinerlei Vorteile in der Performance bewirkt?

MFG
Nils
 

 

 

 

Finger weg vom billigen Hosting! Irgendwann bereust du es, spätestens dann wenn ein paar Idioten mit zig tausend Artikeln und Varianten den Server ausreitzen. Dann geht es dir wie uns und vielen anderen hier. Schlechte Ladezeiten, Server down, 502 Bad Gateway und das zig mal am Tag. Gibt hier im Forum einige Beiträge von Usern die damit schlechte Erfahrungen gemacht haben. Wir sind auf einen Managed Root Server umgezogen, seit dem ist Ruhe und unsere Seite läuft wie der Blitz.  Smile

Hier haben wir auch was dazu geschrieben: https://forum.shopware.com/discussion/44085/serverumzug-abgeschlossen-der-server-ein-traum#latest

Dein Test ist so relativ nichts aussagend - Ein Shop ohne jeglichen Traffic zu testen macht ziemlich wenig Sinn.

Du musst die Shops wenn schon unter Last testen - Wie sind also die Response Zeiten bei bspw. 500 Besucher in der Minute. nginx kann mehr Abfragen pro Minute abarbeiten als ein Apache Server. Der Apache Server geht also schneller in die Knie bei vielen Besuchern.

Du kannst bspw. hier auch einen Stresstest durchführen: http://loader.io/

Die TTFBs deuten auf jeden Fall darauf hin, daß Dein Shop viel PHP-Last verursacht und viel Rechenpower benötigt, denn bei gut optimierten Shopware-Installationen solltest Du unter 400ms kommen können, auch Werte unter 200ms sind möglich. Werte über einer Sekunde deuten auf Optimierungsbedarf hin. Ggf. solltest Du versuchen, Deinen Shop mittels Tideways (s. https://tideways.io/ ) zu optimieren oder einmal Deine Plugins nacheinander zu deaktivieren, um zu schauen, ob es eine Besserung bringt.

Wenn der Shop schlecht optimiert ist, dann kann ein Hosterwechsel u.U. auch nur in gerigem Maße helfen. Sicher kannst Du versuchen, die Ladezeiten zu drücken, indem Du Hardware auf das Problem wirfst (also noch schnellere CPUs mit mehr Kernen, schnellere Festplatten, etc.), aber der erfolgversprechendere Weg ist, Deinen Shop zu optimieren.

Wie diverse Vorposter schon erwähnt haben, sind Benchmarks auf einem Shared Hosting mit Vorsicht zu genießen, da Du nie weißt, wieviel Last der Server gerade hat (denn Du teilst Dir den Server ja mit anderen Kunden). Wenn Du Glück hast, bist Du der erste Kunde auf einem neuen Server und hast daher die volle Performance für Dich (das wird sich im Laufe der Zeit, wenn auch andere Websites auf dem Server angelegt werden, ändern), andersherum kann es aber auch sein, daß Du gerade einen Benchmark durchführst, wenn mehrere andere Websites viel Last verursachen. Wenn Du einen aussagekräftigen Benchmark haben möchtest, mußt Du Dir einen Server oder ggf. auch eine virtuelle Maschine (bei einem Anbieter, der die Hostsysteme nicht überbucht) zulegen.

nginx bringt Dir vor allem dann etwas, wenn Du viele Besucher auf Deinem Shop hast, da nginx weniger RAM und weniger CPU-Leistung benötigt als Apache. Du mußt natürlich darauf achten, daß Du einen Anbieter wählst, der reines nginx-Hosting anbietet, denn viele Hoster bieten einfach nur nginx vorgeschaltet vor einem Apache an (als Reverse Proxy), wodurch unserer Meinung nach die wesentlichen Vorteile von nginx einfach verschenkt werden und Du Dir zusaätzliche Komplexität und damit Fehleranfälligkeit ins Haus holst.

Timme Hosting - schnelles nginx-Hosting

www.timmehosting.de