Ich richte einen Nginx-Stack ein und optimiere die Konfiguration, bevor ich live gehe. Ich war enttäuscht, als ich sah, dass 150 Anfragen pro Sekunde erledigt wurden und eine signifikante Anzahl von Anfragen> 1 Sekunde brauchte, um zurückzukehren. Seltsamerweise atmete die Maschine selbst nicht einmal schwer.
Ich habe mir endlich überlegt, die Box anzupingen und habe Ping-Zeiten um die 100-125 ms gesehen. (Die Maschine ist zu meiner Überraschung im ganzen Land). Anscheinend dominiert die Netzwerklatenz meine Tests. Es werden dieselben Tests von einem Computer im selben Netzwerk wie der Server ausgeführt (Ping-Zeiten <1 ms), und es werden> 5000 Anforderungen pro Sekunde angezeigt, was eher den Erwartungen entspricht, die ich an den Computer gestellt habe.
Aber das brachte mich zum Nachdenken: Wie bestimme und melde ich ein "realistisches" Maß für Anforderungen pro Sekunde für einen Webserver? Sie sehen immer Leistungsansprüche, sollten aber die Netzwerklatenz nicht berücksichtigen? Sicher, ich kann 5000 Anfragen pro Sekunde an einen Computer neben dem Server senden, aber nicht an einen Computer im ganzen Land. Wenn ich viele langsame Verbindungen habe, wirken sich diese letztendlich auf die Leistung meines Servers aus, oder? Oder denke ich darüber alles falsch nach?
Verzeih mir, wenn es sich um Network Engineering 101 handelt. Ich bin ein Entwickler von Beruf.
Update: Der Übersichtlichkeit halber bearbeitet.
ab
hat eine Parallelitätsoption. Auf was hast du es eingestellt? Wenn Sie über eine inländische ADSL-Verbindung testen, wird der Test wahrscheinlich von Ihrer Bandbreite dominiert und testet überhaupt nichts auf dem Server.Antworten:
Wenn Sie sich für die Leistung Ihres Servers interessieren, wenn Sie von irgendwo auf der Welt darauf zugreifen, bitten Sie einen Freund irgendwo auf der Welt (sollte eine gute Bandbreite haben), Sproxy + Belagerung auf seiner Linux-Box zu installieren . Einfach herunterladen, konfigurieren, erstellen. Diese Tools sind klein und lassen sich innerhalb von Sekunden kompilieren.
Zunächst starten Sie
sproxy
auf der Linux-Box. Standardmäßig wird es auf Port 9001 auf localhost (127.0.0.1) ausgeführt. Wenn Sie von außen darauf zugreifen möchten, übergeben Sie einfach die ausgehende IP-Adresse als Parameter.Stellen Sie nun eine Verbindung zu Sproxy her, indem Sie Ihren Browser so einstellen, dass diese IP und dieser Port als Proxy für HTTP verwendet werden. Alles, was Sie von nun an tun, wird von Sproxy aufgezeichnet und kann später wiedergegeben werden. Surfen Sie jetzt auf Ihrer Website, tun Sie Dinge, die Ihre Kunden tun würden, und versuchen Sie, "teure" Dinge zu tun, die Ihren Server nutzen.
Wenn Sie fertig sind, beenden Sie sproxy, indem Sie STRG ^ C drücken. Es zeichnete deine Aktionen auf
$HOME/urls.txt
. Verschieben Sie die Datei an den Ort, an dem sich die Belagerung befindet. Führen Sie zum Starten des Stresstests Folgendes aussiege -f urls.txt -d NUM -c NUM
.d
steht für die Verzögerung zwischen Anforderungen. Verwenden Sie bei Leistungstests 1 (Sekunde).c
steht für die Anzahl der simulierten gleichzeitigen Benutzer. Wählen Sie nach Belieben, aber fangen Sie niedrig an. Siege zeigt Ihnen die Anzahl der Transaktionen pro Sekunde, Fehler, die durchschnittliche Dauer von Anfragen usw. an. Es ist ein leistungsstarkes und benutzerfreundliches Tool.Wenn Sie weitere Informationen zu Parametern benötigen (es gibt viele), lesen Sie das Belagerungshandbuch und das Sproxy-Handbuch
Um realistischere Ergebnisse zu erzielen, lassen Sie Ihren Server von vielen Personen aus verschiedenen Ländern gleichzeitig testen und die Statistiken senden.
quelle
Das realistische Maß für Anforderungen / Sek. Sollte aus den Zugriffsprotokollen entnommen werden. IMO hat die Anforderungswartezeit nichts mit der Serverauslastung zu tun, da der Server alle Anforderungen unabhängig von ihrer Herkunft mit derselben Geschwindigkeit verarbeitet.
quelle
Erwägen Sie die Verwendung von Diensten wie Soasta Cloudtest . Mit ihr können Sie ziemlich detaillierte Berichte über Ihre Tests erhalten und Leistungstests von verschiedenen öffentlichen Cloud- / Virtualisierungsanbietern durchführen. Sie können konfigurieren, wie hart und wie lange Sie Ihre Server schlagen möchten. Sie haben auch eine kostenlose " Lite " -Version, so dass Sie sehen können, was sie kann, bevor Sie Geld überweisen.
quelle