ab - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

ab - Benchmarking-Tool für Apache-HTTP-Server

ZUSAMMENFASSUNG

ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -E client-certificate file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path

ZUSAMMENFASSUNG

ab ist ein Tool zum Benchmarking Ihres Apache Hypertext Transfer Protocol (HTTP)-Servers. Es soll Ihnen einen Eindruck davon vermitteln, wie Ihre aktuelle Apache-Installation funktioniert. Dies zeigt Ihnen insbesondere, wie viele Anfragen pro Sekunde Ihre Apache-Installation bedienen kann.

OPTIONEN

-A auth-username:password

Stellen Sie dem Server BASIC-Authentifizierungs-Anmeldeinformationen zur Verfügung. Der Benutzername und das Passwort werden durch ein einzelnes : getrennt und base64-codiert über die Leitung gesendet. Die Zeichenfolge wird unabhängig davon gesendet, ob der Server sie benötigt (d. h. eine 401-Authentifizierung erforderlich gesendet hat).

-b windowsize

Größe des TCP-Sende-/Empfangspuffers in Bytes.

-B local-address

Adresse, an die beim Herstellen ausgehender Verbindungen gebunden werden soll.

-c concurrency

Anzahl mehrerer gleichzeitig auszuführender Anforderungen. Der Standardwert ist jeweils eine Anfrage.

-C cookie-name=value

Fügen Sie der Anfrage eine Zeile Cookie: hinzu. Das Argument hat normalerweise die Form eines Name=Wert-Paares. Dieses Feld ist wiederholbar.

-d

Zeigt nicht den „Prozentsatz, der innerhalb der XX [ms]-Tabelle bereitgestellt wurde“ an. (Legacy-Unterstützung).

-e csv-file

Schreiben Sie eine Datei mit durch Kommas getrennten Werten (CSV), die für jeden Prozentsatz (von 1 % bis 100 %) die Zeit (in Millisekunden) enthält, die für die Bearbeitung dieses Prozentsatzes der Anfragen benötigt wurde. Dies ist normalerweise nützlicher als die Datei „gnuplot“. da die Ergebnisse bereits „gebündelt“ sind.

-E client-certificate-file

Wenn Sie eine Verbindung zu einer SSL-Website herstellen, verwenden Sie das bereitgestellte Client-Zertifikat im PEM-Format zur Authentifizierung beim Server. Es wird erwartet, dass die Datei das Client-Zertifikat enthält, gefolgt von Zwischenzertifikaten, gefolgt vom privaten Schlüssel. Verfügbar in 2.4.36 und höher.

-f protocol

Geben Sie das SSL/TLS-Protokoll an (SSL2, SSL3, TLS1, TLS1.1, TLS1.2 oder ALLE). TLS1.1- und TLS1.2-Unterstützung ist in 2.4.4 und höher verfügbar.

-g gnuplot-file

Schreiben Sie alle Messwerte als „Gnuplot“- oder TSV-Datei (Tab Separate Values) aus. Diese Datei kann problemlos in Pakete wie Gnuplot, IDL, Mathematica, Igor oder sogar Excel importiert werden. Die Beschriftungen befinden sich in der ersten Zeile der Datei.

-h

Nutzungsinformationen anzeigen.

-H custom-header

Fügen Sie der Anfrage zusätzliche Header hinzu. Das Argument hat normalerweise die Form einer gültigen Kopfzeile, die ein durch Doppelpunkte getrenntes Feld-Wert-Paar enthält (d. h., "Accept-Encoding: zip/zop;8bit"). ).

-i

Führen Sie HEAD-Anfragen anstelle von GET aus.

-k

Aktivieren Sie die HTTP-KeepAlive-Funktion, d. h., um mehrere Anfragen innerhalb einer HTTP-Sitzung auszuführen. Standardmäßig ist kein KeepAlive.

-l

Melden Sie keine Fehler, wenn die Länge der Antworten nicht konstant ist. Dies kann für dynamische Seiten nützlich sein. Verfügbar in 2.4.7 und höher.

-m HTTP-method

Benutzerdefinierte HTTP-Methode für die Anfragen. Verfügbar in 2.4.10 und höher.

-n requests

Anzahl der für die Benchmarking-Sitzung auszuführenden Anforderungen. Standardmäßig wird nur eine einzige Anfrage ausgeführt, was normalerweise zu nicht repräsentativen Benchmarking-Ergebnissen führt.

-p POST-file

Datei mit Daten zum POST. Denken Sie daran, auch -T zu setzen.

-P proxy-auth-username:password

Geben Sie unterwegs BASIC-Authentifizierungs-Anmeldeinformationen an einen Proxy weiter. Der Benutzername und das Passwort werden durch ein einzelnes : getrennt und base64-codiert über die Leitung gesendet. Die Zeichenfolge wird unabhängig davon gesendet, ob der Proxy sie benötigt (d. h. hat eine 407-Proxy-Authentifizierung erforderlich gesendet).

-q

Bei der Verarbeitung von mehr als 150 Anfragen gibt ab alle 10 % oder etwa 100 Anfragen eine Fortschrittszählung auf stderr aus. Das Flag -q unterdrückt diese Nachrichten.

-r

Bei Socket-Empfangsfehlern nicht beenden.

-s timeout

Maximale Anzahl an Sekunden, die gewartet werden soll, bevor der Socket das Zeitlimit überschreitet. Der Standardwert beträgt 30 Sekunden. Verfügbar in 2.4.4 und höher.

-S

Zeigen Sie den Median und die Standardabweichung nicht an und zeigen Sie auch keine Warn-/Fehlermeldungen an, wenn der Durchschnitt und der Median mehr als das Ein- oder Zweifache der Standardabweichung voneinander entfernt sind. Und standardmäßig die Min/Durchschnitt/Max-Werte. (Legacy-Unterstützung).

-t timelimit

Maximale Anzahl an Sekunden, die für das Benchmarking aufgewendet werden sollen. Dies impliziert intern einen -n 50000. Verwenden Sie dies, um den Server innerhalb eines festgelegten Gesamtzeitraums zu vergleichen. Standardmäßig gibt es keine zeitliche Begrenzung.

-T content-type

Header vom Inhaltstyp zur Verwendung für POST/PUT-Daten, z. B. application/x-www-form-urlencoded. Der Standardwert ist text/plain.

-u PUT-file

Datei mit Daten zum PUT. Denken Sie daran, auch -T zu setzen.

-v verbosity

Ausführlichkeitsstufe festlegen – 4 und höher druckt Informationen in Kopfzeilen, 3 und höher druckt Antwortcodes (404, 200 usw.), 2 und Oben werden Warnungen und Informationen gedruckt.

-V

Versionsnummer anzeigen und beenden.

-w

Ergebnisse in HTML-Tabellen ausdrucken. Die Standardtabelle ist zwei Spalten breit und hat einen weißen Hintergrund.

-x <table>-attributes

Zeichenfolge, die als Attribute für Tabelle verwendet werden soll. Attribute werden Tabelle hier eingefügt.

-X proxy[:port]

Verwenden Sie für die Anfragen einen Proxyserver.

-y <tr>-attributes

Zeichenfolge, die als Attribut für verwendet werden soll.

-z <td>-attributes

Zeichenfolge, die als Attribut für verwendet werden soll.

-Z ciphersuite

Geben Sie die SSL/TLS-Verschlüsselungssuite an (siehe OpenSSL-Verschlüsselungen)

AUSGANG

Die folgende Liste beschreibt die von ab zurückgegebenen Werte:

Server Software

Der Wert, falls vorhanden, der im HTTP-Header server der ersten erfolgreichen Antwort zurückgegeben wird. Dies umfasst alle Zeichen im Header vom Anfang bis zu dem Punkt, an dem ein Zeichen mit dem Dezimalwert 32 (insbesondere ein Leerzeichen oder CR/LF) erkannt wird.

Server Hostname

Die in der Befehlszeile angegebene DNS- oder IP-Adresse

Server Port

Der Port, zu dem ab eine Verbindung herstellt. Wenn in der Befehlszeile kein Port angegeben wird, wird standardmäßig 80 für http und 443 für https verwendet.

SSL/TLS Protocol

Die zwischen Client und Server ausgehandelten Protokollparameter. Dies wird nur gedruckt, wenn SSL verwendet wird.

Document Path

Der aus der Befehlszeilenzeichenfolge analysierte Anforderungs-URI.

Document Length

Dies ist die Größe in Bytes des ersten erfolgreich zurückgegebenen Dokuments. Ändert sich die Dokumentlänge während des Tests, wird die Antwort als Fehler gewertet.

Concurrency Level

Die Anzahl gleichzeitiger Clients, die während des Tests verwendet wurden

Time taken for tests

Dies ist die Zeit, die vom Erstellen der ersten Socket-Verbindung bis zum Empfang der letzten Antwort vergeht

Complete requests

Die Anzahl der erfolgreichen Antworten, die eingegangen sind

Failed requests

Die Anzahl der Anfragen, die als fehlgeschlagen galten. Wenn die Zahl größer als Null ist, wird eine weitere Zeile mit der Anzahl der Anfragen gedruckt, die aufgrund einer Verbindung, eines Lesevorgangs, einer falschen Inhaltslänge oder von Ausnahmen fehlgeschlagen sind.

Write errors

Die Anzahl der Fehler, die beim Schreiben fehlgeschlagen sind (kaputte Pipe).

Non-2xx responses

Die Anzahl der Antworten, die nicht in der 200er-Reihe von Antwortcodes enthalten waren. Wenn alle Antworten 200 waren, wird dieses Feld nicht gedruckt.

Keep-Alive requests

Die Anzahl der Verbindungen, die zu Keep-Alive-Anfragen führten

Total body sent

Wenn das Senden von Daten als Teil des Tests konfiguriert ist, ist dies die Gesamtzahl der während der Tests gesendeten Bytes. Dieses Feld wird weggelassen, wenn der Test keinen zu sendenden Text enthielt.

Total transferred

Die Gesamtzahl der vom Server empfangenen Bytes. Diese Zahl ist im Wesentlichen die Anzahl der über die Leitung gesendeten Bytes.

HTML transferred

Die Gesamtzahl der vom Server empfangenen Dokumentbytes. Diese Zahl schließt die in HTTP-Headern empfangenen Bytes aus

Requests per second

Dies ist die Anzahl der Anfragen pro Sekunde. Dieser Wert ergibt sich aus der Division der Anzahl der Anfragen durch die Gesamtzeit

Time per request

Die durchschnittliche Zeit, die pro Anfrage aufgewendet wird. Der erste Wert wird mit der Formel Parallelität * Zeitaufwand * 1000/erledigt berechnet, während der zweite Wert mit der Formel Zeitaufwand * 1000/erledigt berechnet wird

Transfer rate

Die Übertragungsrate, berechnet nach der Formel totalread/1024/timetaken

Fehler

Es gibt verschiedene statisch deklarierte Puffer fester Länge. In Kombination mit der verzögerten Analyse der Befehlszeilenargumente, der Antwortheader vom Server und anderer externer Eingaben könnte Sie das stören.

Es implementiert HTTP/1.x nicht vollständig; akzeptiert nur einige „erwartete“ Formen von Antworten. Die ziemlich starke Verwendung von strstr(3) wird oben im Profil angezeigt, was auf ein Leistungsproblem hinweisen könnte; d.h., Sie würden die ab-Leistung messen und nicht die des Servers.