Leistungsvergleich von RPi 3-Webservern: Apache, Nginx und Lighttpd

10

Hat jemand echte Leistungsvergleichstests mit RPi 3 auf gängigen Webservern durchgeführt:

  1. Apache2 - der am weitesten verbreitete Server
  2. Nginx - der Server, der behauptet, der beste Performer zu sein
  3. Lighttpd - der leichteste Server
  4. Oder ein Paket, von dem ich noch nichts gehört habe

So etwas wie dieser 4 Jahre alte Beitrag für das RPi 2 . Den Ratschlägen in diesem Beitrag folgend, habe ich meine Forschung allgemeiner erweitert und diesen Artikel gefunden , halte ihn jedoch für etwas verdächtig, da es sich um ein Hosting-Unternehmen handelt, und ich benötige eine Antwort, die auf die Hardware des RPi 3 zugeschnitten ist.

Sandor Dosa
quelle
4
Off Topic: Ich verstehe nicht, warum jemand eine Frage abgelehnt hat, ohne einen Hinweis zu geben, was daran falsch ist.
Joe Platano
2
Ich bin weder passiv aggressiv noch suche ich, dass Sie Ihre Frage löschen. Ich war zu beschäftigt, um einen Kommentar zu meiner Ablehnung abzugeben. Das erste Problem ist, dass Sie vorzeitig optimieren. Sie haben den Anwendungsfall nicht klar definiert (welche Module / Funktionen werden benötigt usw.). Ich könnte noch einige Absätze machen, aber ich werde Ihre eigenen Worte für sich selbst sprechen lassen: "Wenn Nginx das tut, was ich brauche, dann scheint es ein besserer Out-of-the-Box (oder Out-of-Apt) zu sein -get) Lösung, die zusammengestellt werden muss, bevor die Leistungsverbesserungen beginnen. "
Steve Robillard
2
Wenn Nginx das tut, was ich brauche (so können Sie möglicherweise einen oder mehrere Server basierend auf den Anforderungen ausschließen, wodurch Ihre Frage irrelevant wird. Sie stellen den Wagen vor das Pferd. Besorgen Sie sich ein funktionierendes System und sorgen Sie sich darum Leistungsoptimierung. Zweitens hängt die Beantwortung Ihrer Frage von der spezifischen Arbeitslast ab. Wird die Verwendung der Datenbank schwer lesbar oder schwer zu schreiben sein? Wird das System an die Datenbank oder an die E / A gebunden sein? Wenn die Datenbank keine Optimierung Ihres Webservers wahrscheinlich ist zu helfen.
Steve Robillard
2
Ich zitiere Sie erneut: "Es ist wichtig, dass Sie allen etwas ohne große Verzögerung servieren können." Wie viel ist zu viel Verzögerung? und schließlich "Ich habe andere Beiträge darüber gesehen, wie Apache und Nginx für eine bessere Leistung optimiert werden können, aber das scheint eine Menge Arbeit zu sein, nur um eine Testkonfiguration zu erstellen, um die Optionen zu vergleichen." Ist es nicht genau das, was Sie jemanden bitten, in dieser Frage für Sie zu tun? Ohne den Vorteil realer Verkehrsdaten oder einer vollständigen Spezifikation des Problems. Ohne diese Dinge können sie auch eine Kristallkugel konsultieren.
Steve Robillard
Wäre angesichts des Speicherbedarfs und der Prozessorbeschränkungen des PI nicht so etwas wie ein knotenbasiertes Setup zusammen mit Express in einem nicht blockierenden ereignisgesteuerten E / A-Server von größerem Nutzen? Auch dies hängt von Ihrem Anwendungsfall ab. Stellen Sie statische oder dynamische Dateien bereit? Ist Ihre Pfanne eine Webanwendung oder eine Website zu haben.
CoderX

Antworten:

5

Dies sollte ein Kommentar sein, aber es ist ein bisschen lang.

Obwohl ich (noch) nicht verschiedene Webserver auf meinem Pi getestet habe, habe ich zuvor viele Tests auf Webservern durchgeführt, die auf x86-Serverhardware ausgeführt werden. Was ich von dort weiß ist:

  1. Die meisten Leute sind verwirrt über den Unterschied zwischen Leistung und Kapazität - Sie werden viele Posts sehen, die behaupten, Nginx sei schneller als (Pre-Fork) Apache. Dies ist nicht wahr , außer unter hoher Last. Nginx (und Lighty) haben beide eine viel bessere Kapazität. Und das ist auf der trivialsten Ebene der Analyse.

  2. Nur wenige Leute stellen ausschließlich statische Inhalte mit ihren Webservern bereit (in diesem Szenario verlassen Tux und G-Wan die Server, die Sie erwähnt haben, in ihrem Staub). Das Leistungsprofil hängt stark von der Logikschichttechnologie und ihrer Integration in den Webserver ab.

  3. Die Leistung (und Kapazität) hängt von allem ab, was auf dem Gerät ausgeführt wird.

Es gibt viele Funktionen eines Rechenzentrums-Servers, auf die man sehr einfach verzichten kann, wenn man über eine angemessene Redundanz auf Cluster-Ebene verfügt (Dual-Netzteil, Dual-Netzwerk, Remote-Konsole ...). Ein Raspberry PI ist jedoch als Web nicht sinnvoll Serving-Plattform aufgrund langsamer Festplatten-E / A - Sie benötigen wirklich etwas mit SATA-, [i] SCSI-, AOE- oder Infiniband-Konnektivität zu Ihrem Speicher. Der Pi hat keine SATA-Schnittstelle, nur einen Ethernet-Port und mir ist keine Infiniband- oder SCSI-Schnittstelle bekannt.

(Es gibt kleine Single-Board-Computer, die eine sinnvollere Wahl für den Aufbau von Webserving-Funktionen sind - und ein Cluster davon kann wirtschaftlich sinnvoll sein. In einem solchen Szenario sehen Sie jedoch mehrere Knoten mit mehrschichtigen Funktionen für die SSL-Terminierung (HTTP) Caching, Webserving, Anwendungslogik und Datenverwaltung).

Die Frage nach der schnellsten ist schwer zu definieren, von Fall zu Fall unterschiedlich und nicht zu beantworten.

Der größte Fehler, den ich in der IT immer wieder sehe, besteht darin, dass Menschen Produkte anhand eines einzigen Attributs auswählen, anstatt die größeren Auswirkungen sowohl auf die Technologie als auch auf die beteiligten Personen zu berücksichtigen.

symcbean
quelle
Gute Punkte alle. Ich fürchte, dieses Projekt ist wieder in Flammen aufgegangen.
Sandor Dosa
2

Ich fürchte, Sie müssen es selbst herausfinden. Als ich diese Frage für mein RPi2 hatte, stolperte ich über Siege und httperf . Ich folgte diesem Beispiel , um die Benchmarks auszuführen - nur anstelle von einfachen HTML-Seiten habe ich PHP-Dateien angefordert. Die Leistung des Webservers hängt auch von den von Ihnen ausgewählten CGI-Modulen ab. Ein einfaches Vanille-Lighttpd kann schneller sein als ein Vanille-Apache. Wenn Sie das CGI nicht richtig auswählen / konfigurieren, kann dies eine Änderung sein und der Apache kann den Lighty übertreffen.

Joe Platano
quelle
Ich fürchte, du hast recht. Ich werde versuchen, eine Testmethode zu finden und Bericht zu erstatten.
Sandor Dosa
@ SandorDosa, halten Sie mich auf dem Laufenden, pls
Joe Platano
2

Ich habe die lighttpd-Option aus folgenden Gründen gewählt:

  1. Leicht
  2. eine der am einfachsten zu installierenden
  3. läuft in den letzten zwei Jahren problemlos auf meinem RPi2 (24x7)
  4. brauchte ein gutes und einfaches als mein Testgerät zu verwenden

Ich benutze es als:

  1. Überwachen Sie die CPU-Temperatur, die Umgebungs- / Raumtemperatur und den Feuchtigkeitsgraphenlogger meines Systems
  2. FTP-Server zum Austausch von Dateien mit meinen Geschäftspartnern und zum Vermeiden der Speicherung vertraulicher Daten auf kostenlosen Mailservern von Drittanbietern
  3. Viele Web-Widgets zur Überprüfung des Marktindex wie Forex, Anleihen, Aktien usw.
  4. HTML-Code testen
  5. Führen Sie ein Skript aus, das ich erstellt habe, um nach E-Mails zu suchen, da ich viele E-Mail-Konten habe, um Geo-Tagging-Sperren zu vermeiden
  6. ein einfaches Blog betreiben (Nibble Blog)
  7. Arbeite als Honeypot, um Hacker auf meinem Draht zu erkennen (und zu blockieren)

um nur einige Verwendungen zu nennen.

JohnBR
quelle