Implementierungsmethode für den Apache AB-Stresstest zur gleichzeitigen Belastung

Implementierungsmethode für den Apache AB-Stresstest zur gleichzeitigen Belastung

ab-Befehlsprinzip

Der Befehl ab von Apache simuliert gleichzeitige Anfragen mehrerer Threads, um die Serverauslastung zu testen. Er kann auch die Belastung anderer Webserver wie nginx, lighthttp und IIS testen.
Der Befehl ab stellt sehr geringe Anforderungen an den Computer, der die Last ausgibt. Er beansprucht nicht viel CPU oder zu viel Speicher, verursacht jedoch eine enorme Belastung des Zielservers. Daher ist es ein unverzichtbares Mittel gegen bestimmte DDOS-Angriffe und eignet sich sowohl für Jung als auch für Alt. Seien Sie vorsichtig, wenn Sie es selbst verwenden. Andernfalls kann es bei gleichzeitig zu hoher Last dazu kommen, dass der Zielserver aufgrund von Speichermangel abstürzt und neu gestartet werden muss, was den Aufwand nicht rechtfertigt.

Bei unzureichender Bandbreite ist es am besten, lokal zu testen. Es wird empfohlen, einen oder mehrere Server im Intranet zu verwenden, um über das Intranet zu testen. Die auf diese Weise erhaltenen Daten sind viel genauer. Remote-Stresstests eines Webservers führen häufig zu unbefriedigenden Ergebnissen (aufgrund übermäßiger Netzwerklatenz oder unzureichender Bandbreite).

Herunterladen und installieren:
http://mirror.bit.edu.cn/apache//httpd/binaries/win32/?C=M;O=A

Suchen Sie nach httpd-2.2.21-win32-x86-no_ssl.msi

Parameterdokumentation:
http://httpd.apache.org/docs/2.2/programs/ab.html

laufen:

Öffnen Sie im Windows-System das cmd-Befehlszeilenfenster und suchen Sie das Bin-Verzeichnis des Apache-Installationsverzeichnisses
cd C:\Programme (x86)\Apache Software Foundation\Apache2.2\bin

Geben Sie den Befehl ein:

ab -n 800 -c 800 http://192.168.0.10/

(-n sendet 800 Anfragen, -c simuliert 800 gleichzeitige Zugriffe, was 800 gleichzeitigen Zugriffen entspricht, gefolgt von der Test-URL)

ab -t 60 -c 100 http://192.168.0.10/
Senden Sie Anfragen innerhalb von 60 Sekunden, 100 Anfragen auf einmal.

//Wenn Sie Parameter in die URL einschließen müssen, tun Sie dies
ab -t 60 -c 100 -T "text/plain" -p p.txt http://192.168.0.10/hallo.html

p.txt befindet sich im selben Verzeichnis wie ab.exe
Parameter können in p.txt geschrieben werden, z. B. p=wdp&fq=78

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

Benchmarking 192.168.0.10 (Seien Sie geduldig)
100 Anfragen abgeschlossen
200 Anfragen abgeschlossen
300 Anfragen abgeschlossen
400 Anfragen abgeschlossen
500 Anfragen abgeschlossen
600 Anfragen abgeschlossen
700 Anfragen abgeschlossen
800 Anfragen abgeschlossen
800 Anfragen abgeschlossen


Serversoftware: Microsoft-HTTPAPI/2.0
Server-Hostname: 192.168.0.10
Server-Port: 80

Dokumentpfad: /
Dokumentlänge: 315 Bytes Die Länge des HTTP-Antwortdatenkörpers

Gleichzeitigkeitsstufe: 800
Dauer der Tests: 0,914 Sekunden
Abgeschlossene Anfragen: 800 Abgeschlossene Anfragen: 800
Fehlgeschlagene Anfragen: 0
Schreibfehler: 0
Nicht-2xx-Antworten: 800
Insgesamt übertragen: 393600 Bytes
Übertragenes HTML: 252000 Bytes HTML-Inhalt übertragen
Anfragen pro Sekunde: 875,22 [#/sec] (Mittelwert)
Zeit pro Anfrage: 914,052 [ms] (Mittelwert) Die Zeit, die der Server benötigt, um die Anfrage zu empfangen und auf die Seite zu antworten
Zeit pro Anfrage: 1,143 [ms] (Mittelwert aller gleichzeitigen Anfragen) Durchschnittliche Zeit, die jede gleichzeitige Anfrage in Anspruch nimmt
Übertragungsrate: 420,52 [Kbyte/Sek.] empfangen. Die durchschnittliche Menge an Netzwerkverkehr pro Sekunde. So lässt sich ausschließen, dass übermäßiger Netzwerkverkehr zu längeren Antwortzeiten führt.


Aufschlüsselung der im Netzwerk verbrachten Zeit:
Verbindungszeiten (ms)
Min. Mittelwert[+/-SD] Median Max.
Verbinden: 0 1 0,5 1 3
Verarbeitung: 245 534 125,2 570 682
Warten: 11 386 189,1 409 669
Gesamt: 246 535 125,0 571 684

Der Antwortstatus aller Anfragen im gesamten Szenario. In diesem Szenario hat jede Anfrage eine Antwortzeit, wobei 50 % der Benutzer eine Antwortzeit von weniger als 571 Millisekunden haben
80 % der Benutzer antworteten innerhalb von 652 Millisekunden. Die maximale Antwortzeit betrug weniger als 684 Millisekunden.
Prozentsatz der Anfragen, die innerhalb einer bestimmten Zeit (ms) bearbeitet wurden
50% 571
66% 627
75% 646
80% 652
90% 666
95% 677
98% 681
99% 682
100 % 684 (längste Anfrage)

Das könnte Sie auch interessieren:
  • Verwenden Sie das Apache ab-Tool, um einen einfachen Stresstest auf dem Apache-Server durchzuführen
  • So konfigurieren Sie ab für Stresstests für den Nginx-Server
  • ab-Website-Stresstestbefehl
  • Verwenden Sie das ab-Tool, um einen API-Stresstest auf dem Server durchzuführen

<<:  jQuery implementiert die Drop-Down-Box zur Auswahl des Wohnortes

>>:  Analyse des Prinzips der Verwendung von PDO zur Verhinderung von SQL-Injection

Artikel empfehlen

Das WeChat-Applet realisiert eine Links-Rechts-Verknüpfung

In diesem Artikel wird der spezifische Code für d...

37 Tipps für ein gutes User Interface Design (mit Bildern)

1. Versuchen Sie, ein einspaltiges statt eines meh...

Beispiel für die Implementierung des Skelettbildschirms des WeChat-Applets

Inhaltsverzeichnis Was ist ein Skelettbildschirm?...

Detailliertes Verständnis des Lebenszyklusvergleichs zwischen Vue2 und Vue3

Inhaltsverzeichnis Zyklusvergleich Verwendung Zus...

Detaillierte Erklärung des this-Zeigeproblems in JavaScript

Zusammenfassen Globale Umgebung ➡️ Fenster Normal...

Zusammenfassung der Ausnahmen bei der MySQL-Datenbankverbindung (sammelwürdig)

Beim Bereitstellen des Projekts auf Centos ist mi...

MySQL-Hochverfügbarkeitslösung MMM (MySQL Multi-Master-Replikationsmanager)

1. Einführung in MMM: MMM steht für Multi-Master ...

Eine kurze Diskussion über Browserkompatibilitätsprobleme in JavaScript

Die Browserkompatibilität ist der wichtigste Teil...

WeChat Mini-Programm: Position des Videofeuers zufällig

In diesem Artikel wird der spezifische Code zur z...

Lassen Sie sich die tiefe Kopie von js verstehen

Inhaltsverzeichnis js tiefe Kopie Methode der Dat...

Grafisches Tutorial zur Offline-Installation und Konfiguration von MySQL 8.0.2

Die Offline-Installationsmethode von MySQL_8.0.2 ...

Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL

In MySQL werden viele Typen von Auto-Increment-ID...