Implementierungsprinzip und Nutzungsanalyse des Apache Bench-Stresstest-Tools

Implementierungsprinzip und Nutzungsanalyse des Apache Bench-Stresstest-Tools

1: Durchsatz (Anfragen pro Sekunde)

Eine quantitative Beschreibung der gleichzeitigen Verarbeitungskapazität des Servers, gemessen in Anforderungen/s. Sie bezieht sich auf die Anzahl der Anfragen, die pro Zeiteinheit bei einer bestimmten Anzahl gleichzeitiger Benutzer verarbeitet werden. Als maximaler Durchsatz bezeichnet man die maximale Anzahl an Anfragen, die bei einer bestimmten Anzahl gleichzeitiger Benutzer pro Zeiteinheit verarbeitet werden können.

Denken Sie daran: Der Durchsatz basiert auf der Anzahl gleichzeitiger Benutzer. Dieser Satz hat zwei Bedeutungen: 1. Die Durchsatzrate hängt von der Anzahl gleichzeitiger Benutzer ab. 2. Die Durchsatzrate ist im Allgemeinen bei unterschiedlichen Zahlen gleichzeitiger Benutzer unterschiedlich.

Berechnungsformel: Gesamtzahl der Anfragen / Zeitaufwand für die Bearbeitung dieser Anfragen, d. h.

Anfragen pro Sekunde = Abgeschlossene Anfragen / Dauer der Tests

2: Die Anzahl gleichzeitiger Verbindungen

Die Anzahl gleichzeitiger Verbindungen bezieht sich auf die Anzahl der Anfragen, die der Server zu einem bestimmten Zeitpunkt oder, einfacher ausgedrückt, in einer Sitzung akzeptiert.

3: Die Anzahl gleichzeitiger Benutzer (Concurrency Level)

Es ist wichtig, dieses Konzept von der Anzahl gleichzeitiger Verbindungen zu unterscheiden. Ein Benutzer kann mehrere Sitzungen oder Verbindungen gleichzeitig haben. Unter HTTP/1.1 unterstützt IE7 zwei gleichzeitige Verbindungen, IE8 sechs gleichzeitige Verbindungen und FireFox3 vier gleichzeitige Verbindungen. Dementsprechend muss die Anzahl unserer gleichzeitigen Benutzer durch diese Basis geteilt werden.

4: Durchschnittliche Wartezeit für Benutzeranfragen (Zeit pro Anfrage)

Berechnungsformel: Zeit, die zur Bearbeitung aller Anfragen benötigt wird / (Gesamtzahl der Anfragen / Anzahl der gleichzeitigen Benutzer), d. h.

Zeit pro Anfrage = für Tests benötigte Zeit / (Abgeschlossene Anfragen / Parallelitätsstufe)

5: Durchschnittliche Wartezeit des Servers für Anfragen (Zeit pro Anfrage: über alle gleichzeitigen Anfragen hinweg)

Berechnungsformel: Zeitaufwand für die Bearbeitung aller Anfragen/Gesamtzahl der Anfragen, d. h.

Zeitaufwand für / TestsAbschließen von Anfragen

Wie Sie sehen, ist es der Kehrwert der Durchsatzrate.

Gleichzeitig ist es auch = durchschnittliche Wartezeit der Benutzeranforderung / Anzahl gleichzeitiger Benutzer, d. h.

Zeit pro Anfrage / Parallelitätsstufe

Offizielle Download-Adresse der Website: https://www.apachelounge.com/download/

Nach dem Download entpacken Sie es und rufen mit cmd das aktuelle Dekomprimierungsverzeichnis des Projekts auf:

Rufen Sie dann die Shell-Befehlsausführungsschnittstelle auf (geben Sie das Bin-Verzeichnis ein):

Testbefehl:

./ab -n 100 -c 10 http://localhost:8085/linewell/test1/pass/testApacheBench.do

-n gibt die Anzahl der Anfragen an und -c bedeutet, dass maximal mehrere Anfragen gleichzeitig gesendet werden können.

Wenn -c auf 1 gesetzt ist, verzögert der Java-Backend-Controller aufgrund meines Java-Tests die Verarbeitung um eine Sekunde und verarbeitet sie einzeln, was im Grunde 100 Verarbeitungsvorgänge erfordert. Wenn -c 10 ist, werden 10 gleichzeitig verarbeitet.

Ausgabe:

Dies ist ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Lizenziert an die Apache Software Foundation, http://www.apache.org/

Benchmarking von localhost (seien Sie geduldig) … erledigt


Serversoftware:
Server-Hostname: localhost
Server-Port: 8085

Dokumentpfad: /linewell/test1/pass/testApacheBench.do
Dokumentlänge: 0 Bytes

Gleichzeitigkeitsstufe: 10
Dauer der Tests: 0,077 Sekunden
Vollständige Anfragen: 100
Fehlgeschlagene Anfragen: 0
Nicht-2xx-Antworten: 100
Insgesamt übertragen: 9200 Bytes
Übertragenes HTML: 0 Byte
Anfragen pro Sekunde: 1299,09 [#/sec] (Mittelwert)
Zeit pro Anfrage: 7,698 [ms] (Mittelwert)
Zeit pro Anfrage: 0,770 [ms] (Mittelwert aller gleichzeitigen Anfragen)
Übertragungsrate: 116,72 [Kbyte/sec] empfangen

Verbindungszeiten (ms)
    Min. Mittelwert[+/-SD] Median Max.
Verbinden: 0 0 0,3 0 1
Verarbeitung: 1 5 3,4 5 27
Warten: 1 4 3,1 4 26
Gesamt: 2 5 3,4 5 27

Prozentsatz der Anfragen, die innerhalb einer bestimmten Zeit (ms) bearbeitet wurden
 50% 5
 66% 6
 75% 7
 80% 7
 90% 9
 95% 11
 98% 11
 99% 27
 100 % 27 (längste Anfrage)

Analyse der Ausgabeergebnisse:

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So implementieren Sie Web-Stresstests mit Apache Bench
  • Implementierungsmethode für den Apache AB-Stresstest zur gleichzeitigen Belastung
  • Verwenden Sie das Apache ab-Tool, um einen einfachen Stresstest auf dem Apache-Server durchzuführen
  • Zusammenfassung des allgemeinen Wissens über Apache-Stresstests und Web-Performance-Optimierung
  • Interpretation der Ergebnisse des Stresstests der Apache AB-Toolseite
  • Installation und Verwendung von Apache-Stresstest-Tools

<<:  Detaillierte Erklärung der MySQL-Partitionstabelle

>>:  Detaillierte Erläuterung der MySQL-Sicherung und -Wiederherstellung

Artikel empfehlen

So fügen Sie in MySQL 8.0 schnell Spalten hinzu

Vorwort: Ich habe vor langer Zeit gehört, dass My...

So unterstützen Sie Webdings-Schriftarten in Firefox

Firefox, Opera und andere Browser unterstützen Web...

VUE + SpringBoot implementiert die Paging-Funktion

Dieser Artikel stellt hauptsächlich vor, wie pagi...

3 häufige Fehler beim Lesen von MySQL Binlog-Protokollen

1. mysqlbinlog: [FEHLER] unbekannte Variable „def...

JavaScript, um das Bild mit der Maus zu bewegen

In diesem Artikel wird der spezifische JavaScript...

Tipps zum Organisieren von Zeichenfolgen in Linux

Bei Linux-Operationen ersetzen und zählen wir häu...

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort vergessen?

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort ve...

So beheben Sie das Timeout während des Pip-Vorgangs in Linux

So lösen Sie das Timeout-Problem, wenn Pip in Lin...

Javascript realisiert 10-Sekunden-Countdown zur Bezahlung

In diesem Artikel wird der spezifische Code von J...

js, um einen Karusselleffekt zu erzeugen

Ich denke, das Karussell ist ein relativ wichtige...

Problem beim Testen des nicht autorisierten Zugriffs auf Zookeeper

Inhaltsverzeichnis Vorwort Erkennen des geöffnete...

Navicat importiert CSV-Daten in MySQL

In diesem Artikel erfahren Sie, wie Sie mit Navic...