AB ist eine Abkürzung für ApacheBench.
Der ab-Befehl erstellt mehrere gleichzeitige Zugriffsthreads, um zu simulieren, dass mehrere Besucher gleichzeitig auf eine URL-Adresse zugreifen. Seine Testziele sind URL-basiert, sodass es sowohl Apache-Lastbelastung als auch andere Webserver-Belastungen wie nginx, lighthttp, tomcat, IIS usw. testen kann.
Der Ab-Befehl hat geringe Anforderungen an den Computer, der die Last ausführt, und er beansprucht nicht viel CPU oder Speicher. Allerdings verursacht es eine enorme Belastung für den Zielserver, und sein Prinzip ähnelt dem von CC-Angriffen. Du musst auch auf das Testen und die Nutzung selbst achten, sonst hast du zu viel Last auf einmal. Das kann dazu führen, dass der Zielserver keine Ressourcen mehr hat und in schweren Fällen sogar einen Absturz verursacht.
1. Einführung in das Apache Bench
ApacheBench ist ein Web-Stresstest-Tool, das mit Apache-Servern geliefert wird, abgekürzt als ab. AB ist außerdem ein Kommandozeilen-Tool mit geringen nativen Anforderungen zum Initiieren von Payloads, und viele gleichzeitige Zugriffsthreads können gemäß dem AB-Befehl erstellt werden, wodurch mehrere Besucher simuliert werden, die gleichzeitig auf eine bestimmte URL-Adresse zugreifen, sodass es verwendet werden kann, um den Lastdruck des Zielservers zu testen. Im Allgemeinen ist das AB-Tool klein und einfach, schnell zu erlernen und kann die grundlegenden Leistungsindikatoren liefern, aber es gibt keine grafischen Ergebnisse und kann nicht überwacht werden.
2. Apache Bench Installation
Zuerst musst du den Apache-Server installieren und die Adresse herunterladen:Der Hyperlink-Login ist sichtbar.,
Mein Computer ist ein Win10 64-Bit-System, also habe ich "httpd-2.4.33-win64-VC15.zip" heruntergeladen.verbinden:Der Hyperlink-Login ist sichtbar.
Es wird empfohlen, die neueste Version herunterzuladen, da ältere Versionen von ab den Parameter -r nicht unterstützen.
3. Verwendung von Apache Bench
Verstehen Sie die Parameter
Parameterbeschreibung: Format: ab [Optionen] [http://]Hostname[:p ort]/Pfad
-n Anfragen Anzahl der auszuführenden Anfragen //Die Gesamtzahl der in diesem Test initiierten Anfragen -c Nebenläufigkeit Anzahl mehrerer Anfragen // Anzahl der gleichzeitig generierten Anfragen (oder Nebenläufigkeit) -t Zeitlimit: Sekunden bis maximal. Warten Sie auf Antworten //Die maximale Anzahl von Sekunden, die ein Test standardmäßig ausführt. -r Nicht bei Socket Empfangsfehler verlassen. Wirf eine Ausnahme, um die Test-Aufgabe fortzusetzen -p postfile Datei mit Daten zu POST // Eine Datei mit Daten, die POST sein müssen, in einem Dateiformat wie "p1=1&p2=2". Die Nutzungsmethode ist -p 111.txt
-T Inhaltstyp Content-type Header für POSTing Der Content-Typ-Header, der für die POST-Daten verwendet wird, wie -T "application/x-www-form-urlencoded". (co-p) -v-Wortreichweitigkeit Wie viel Fehlerbehebungsinfo soll gedruckt werden Stellen Sie den Detailgrad ein, um Informationen anzuzeigen – ein Wert von 4 oder höher zeigt Header-Informationen an, ein Wert von 3 oder höher einen Antwortcode (404, 200 usw.), und ein Wert von 2 oder höher zeigt Warnungen und weitere Informationen an. -V zeigt die Versionsnummer und die Ausfahrt an. -C-Attribut Keks hinzufügen, z. B. -C "c1=1234,c2=2,c3=3" (wiederholbar) -C cookie-name=value Fügen Sie einen Cookie an die Request:-Zeile an. Die typische Form ist ein Parameterpaar name=value. Dieser Parameter kann wiederholt werden, geteilt durch ein Komma. Tipp: Du kannst das Prinzip der Sitzungsimplementierung verwenden, um den JSESSIONID-Parameter zu übergeben, um die Funktion der Sitzungspflege zu erreichen, zum Beispiel -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Ergebnisse in HTML-Tabellen ausdrucken // Ergebnisse im HTML-Tabellenformat ausgeben. Standardmäßig handelt es sich um eine Tabelle mit zwei Spalten breit auf weißem Hintergrund. -Ich benutze HEAD statt GET -x Attribute Zeichenkette, die als Tabellenattribute eingefügt werden soll -y-Attribute String soll als tr-Attribute eingefügt werden -z-Attribute Zeichenkette, die als td- oder th-Attribute eingefügt werden -H Attribut Beliebige Kopfzeile hinzufügen, z. B. 'Accept-Encoding: gzip' Nach allen normalen Headerzeilen eingefügt. (wiederholbar) -Ein Attribut Fügen Sie grundlegende WWW-Authentifizierung hinzu, die Attribute sind ein Doppelpunkt getrennter Benutzername und Passwort. -P-Attribut Fügen Sie grundlegende Proxy-Authentifizierung hinzu, die Attribute sind ein Doppelpunkt-getrennter Benutzername und ein Passwort. -X Proxy:Port Proxyserver und Portnummer zu verwenden -V Druckversionsnummer und Ausgang -k Verwenden Sie die HTTP-Funktion KeepAlive -d Keine Zentile anzeigen, die am Tisch serviert werden. -S Zeigt keine Konfidenzschätzungen und Warnungen an. -g Dateiname Ausgabe der gesammelten Daten in die Gnuplot-Formatdatei. -e Dateiname Ausgabe-CSV-Datei mit ausgelieferten Prozentsätzen -h Nutzungsinformationen anzeigen (diese Nachricht) Es gibt viele Parameter, im Allgemeinen können wir die Parameter -c und -n verwenden. Zum Beispiel:
Entzippe die "httpd-2.4.33-win64-VC15.zip", gehe zu \apache24\bin und starte sie mit der cmd-Kommandozeile, wie in der untenstehenden Abbildung dargestellt:
SSL wurde nicht kompiliert; keine HTTPS-Unterstützung: SSL ist nicht kompiliert; Es gibt keine HTTPS-Unterstützung, was bedeutet, dass die Website kein HTTPS unterstützt.
Testergebnisse:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL wurde nicht kompiliert; Kein HTTPS-Support
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Das ist ApacheBench, Version 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,Der Hyperlink-Login ist sichtbar. Lizenziert an die Apache Software Foundation,Der Hyperlink-Login ist sichtbar.
Benchmarkingwww.itsvse.com(hab Geduld) 100 Anfragen erfüllt 200 Anfragen wurden erfüllt 300 Anfragen erfüllt 400 Anfragen erfüllt 500 Anfragen erfüllt 600 Anfragen erfüllt 700 Anfragen erfüllt 800 Anfragen erfüllt 900 Anfragen erledigt 1000 Anfragen erfüllt 1000 Anfragen erledigt
Server-Software: Server-Hostname: www.itsvse.com Serverport: 80
Dokumentpfad: / Dokumentlänge: 178 Bytes
Nebenläufigkeitsniveau: 10 Zeit, die für Tests benötigt wird: 44,916 Sekunden Totale Anfragen: 1000 Fehlgeschlagene Anfragen: 0 Nicht-2xx-Antworten: 1000 Gesamtübertragung: 349.000 Bytes HTML übertragen: 178.000 Bytes Anfragen pro Sekunde: 22,26 [#/sek] (Mittelwert) Zeit pro Anfrage: 449.164 [ms] (Mittel) Zeit pro Anfrage: 44,916 [ms] (Mittelwert, über alle gleichzeitigen Anfragen hinweg) Übertragungsrate: 7,59 [Kbyte/s] empfangen
Verbindungszeiten (ms) Min-Mittel[+/-SD] Median Max
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Prozentsatz der innerhalb einer bestimmten Zeit (ms) gestellten Anfragen 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (längste Anfrage) Parameteranalyse:
Dokumentpfad: Testseite Dokumentlänge: Die Seitengröße Nebenläufigkeitsniveau: Die Anzahl der gleichzeitig getesteten Nebenläufigkeit Zeit, die für Tests benötigt wird: Die Dauer des gesamten Tests Vollständige Anfragen: Die Anzahl der erledigten Anfragen Fehlgeschlagene Anfragen: Die Anzahl der fehlgeschlagenen Anfragen Schreibfehler: 0 Total übertragen: Die während des Prozesses übertragene Netzwerkmenge HTML übertragen: Die Menge an HTML-Inhalten, die während des Prozesses übertragen wird Anfragen pro Sekunde: Eine der wichtigsten Kennzahlen, äquivalent zu Transaktionen pro Sekunde in LR, und ein Mittelwert in Klammern zeigt an, dass dies ein Durchschnitt ist Zeit pro Anfrage: Die zwei wichtigsten Kennzahlen, äquivalent zur durchschnittlichen Transaktionsantwortzeit in LR, Mittelwert in Klammern zeigt an, dass dies ein Durchschnitt ist Zeit pro Anfrage: Der Durchschnitt der tatsächlichen Laufzeit für jede Verbindungsanfrage Übertragungsrate: Durchschnittlicher Verkehr pro Sekunde im Netzwerk, was helfen kann, das Problem von übermäßigem Netzwerkverkehr mit langen Reaktionszeiten auszuschließen
|