EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

httperf – Online in der Cloud

Führen Sie httperf im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl httperf, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


httperf – Tool zur Messung der HTTP-Leistung

ZUSAMMENFASSUNG


httperf [--Kopfzeile hinzufügen S] [--burst-length N] [--Klient I/N] [--close-with-reset]
[-d|--debuggen N] [--failure-status N] [-h|--help] [--Schwein] [--http-Version S] [--max-
Verbindungen N] [--max-piped-calls N] [--Methode S] [--no-host-hdr] [--num-calls N] [--num-
Anschlüsse N] [--Zeitraum [d|u|e]T1[,T2]] [--Hafen N] [--Drucken-Antwort [Kopfzeile|Körper]] [--drucken-
Anforderung [Kopfzeile|Körper]] [--Bewertung X] [unterstützt N] [--retry-on-failure] [--send-buffer N]
[--Server S] [--Servername S] [--session-cookie] [--ssl] [--ssl-chiffren L] [--ssl-nein-
Wiederverwendung] [--think-timeout X] [--Auszeit X] [--uri S] [-v|- ausführlich] [-V|--Version] [--wlog
y|n,F] [--wsess N,N,X] [--wsesslog N,X,F] [--wset N,X]

BESCHREIBUNG


httperf ist ein Tool zur Messung der Webserverleistung. Es spricht das HTTP-Protokoll sowohl in
seine HTTP/1.0- und HTTP/1.1-Varianten und bietet eine Vielzahl von Workload-Generatoren. Während
Beim Ausführen verfolgt es eine Reihe von Leistungsmetriken, die im Formular zusammengefasst werden
von Statistiken, die am Ende eines Testlaufs gedruckt werden. Die grundlegendste Bedienung von
httperf besteht darin, eine feste Anzahl von HTTP-GET-Anfragen zu generieren und die Anzahl der Antworten zu messen
(Antworten) vom Server zurückkamen und mit welcher Geschwindigkeit die Antworten eintrafen.

WICHTIG: Um korrekte Ergebnisse zu erhalten, ist es notwendig, höchstens einen auszuführen httperf Prozessdefinierung
pro Client-Rechner. Außerdem sollten auf beiden Seiten möglichst wenige Hintergrundprozesse stattfinden
die Client- und Servermaschinen.

Beispiele:


httperf --hog --server www
Dieser Befehl verursacht httperf Um eine Verbindung zum Host www herzustellen, senden Sie eine Anfrage
das Stammdokument (http://www/), die Antwort empfangen, die Verbindung schließen und dann
Drucken Sie einige Leistungsstatistiken aus.

httperf --hog --server www --num-conns 100 --ra 10 --timeout 5
Wie oben, außer dass insgesamt 100 Verbindungen erstellt werden und diese Verbindungen
werden mit einer festen Rate von 10 pro Sekunde erstellt. Beachten Sie, dass die Option „--rate“ aktiviert wurde
abgekürzt mit „--ra“.

httperf --hog --server=www --wsess=10,5,2 --rate 1 --timeout 5
Ursachen httperf um insgesamt 10 Sitzungen mit einer Rate von 1 Sitzung pro Sitzung zu generieren
zweite. Jede Sitzung besteht aus 5 Anrufen im Abstand von 2 Sekunden.

httperf --hog --server=www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
Wie oben, nur dass httperf Kontakte-Server www über SSL an Port 443 (der
Standardport für SSL-Verbindungen).

httperf --hog --server www --wsess=10,5,2 --rate=1 --timeout=5 --ssl
--ssl-ciphers=EXP-RC4-MD5:EXP-RC2-CBC-MD5 --ssl-no-reuse --http-version=1.0
Wie oben, nur dass httperf teilt dem Server mit, dass er nur auswählen kann
zwei Verschlüsselungssammlungen (EXP-RC4-MD5 oder EXP-RC2-CBC-MD5); Außerdem, httperf wird benutzen
HTTP-Version 1.0, die für jede Anfrage eine neue TCP-Verbindung erfordert. Auch SSL
Sitzungs-IDs werden nicht wiederverwendet, daher der gesamte SSL-Verbindungsaufbauprozess
(bekannt als SSL-Handshake) erfolgt für jede Verbindung.

OPTIONAL


Der Betrieb von httperf kann über eine Reihe von Optionen gesteuert werden. Das Tool unterstützt
sowohl kurze (ein Zeichen) als auch lange (beliebige Länge) Optionsnamen. Kurze Optionen sind
mit einem vorangestellten einzelnen Bindestrich (-), bei langen Optionen mit einem doppelten Bindestrich (--). Mehrere
Kurze Optionen können gruppiert werden (z. B. „-vV'' ist äquivalent zu ``-v -V'') und lang
Optionen können abgekürzt werden, solange sie einzigartig bleiben. Parameter zu Optionen können sein
wird entweder angegeben, indem dem langen Optionsnamen ein Gleichheitszeichen und der Parameter folgt
Wert (z. --burst=10) oder indem Sie den Optionsnamen und den Wert durch Leerzeichen trennen (z. B.
--platzen 10).

--add-header=S
Gibt an, dass eine Zeichenfolge eingeschlossen werden soll S als zusätzlicher Request-Header. Es ist nötig zu
Geben Sie die abschließende Wagenrücklauf-/Zeilenvorschubsequenz explizit an. Das kann sein
erfolgt über die Escape-Sequenz „\n“. Dies ermöglicht die Einbindung
mehrere Anforderungsheader. Beispiel: „--add-header „Referer: foo\nAuth:
„secret\n““ würde jedem zwei Anforderungsheader („Referer“ und „Auth“) hinzufügen
Anfrage. Andere unterstützte Escape-Sequenzen sind „\r“ (Wagenrücklauf), „\a“
(Zeilenvorschub), „\\“ (Backslash) und „\N“, wobei N der Code des Zeichens ist
eingefügt (oktal).

--burst-length=N
Gibt die Länge der Bursts an. Jeder Burst besteht aus N Anrufe an den Server. Der
Die genaue Bedeutung dieses Parameters hängt vom Workload-Generator ab. Für regelmäßig
Anforderungsorientierte Workloads finden Sie in der Beschreibung der Option --wsess.

--no-host-hdr
Gibt an, dass der Header „Host:“ bei der Ausgabe eines HTTP nicht enthalten sein soll
anfordern.

--num-calls.
Informationen zu sitzungsorientierten Workloads finden Sie in der Beschreibung der Option --wsess.

--client=I/N
Gibt an, dass die Maschine httperf läuft auf dem Client I von insgesamt N
Kunden. I sollte im Bereich von 0 bis liegen N-1. Einige der Workload-Generatoren
(z.B, --wset) Verwenden Sie die Clientidentität als Bias-Wert, um sicherzustellen, dass nicht alle
Clients erzeugen vollkommen identische Arbeitslasten. Bei der Durchführung eines Tests
Da es sich um mehrere Client-Rechner handelt, empfiehlt es sich im Allgemeinen, dies anzugeben
.

--close-with-reset
Fordert das httperf Schließt TCP-Verbindungen, indem ein RESET gesendet wird, anstatt zu gehen
durch den normalen Handshake zum Herunterfahren der TCP-Verbindung. Das Einschalten dieser Option kann
negative Auswirkungen wie Datenbeschädigung, festsitzende TCP-Kontrollblöcke oder Fehler haben
Ergebnisse. Aus diesem Grund sollte die Option nur dann verwendet werden, wenn dies unbedingt erforderlich ist
notwendig, und selbst dann sollte es nicht verwendet werden, es sei denn, seine Auswirkungen sind vollständig
verstanden.

-d=N

--debug=N
Debug-Level auf setzen N. Größere Werte von N wird zu mehr Leistung führen.

--failure-status=N
Gibt an, dass der HTTP-Antwortstatuscode lautet N sollte als Misserfolg behandelt werden
(d. h. es wird beispielsweise so behandelt, als ob die Anfrage abgelaufen wäre). Zum Beispiel mit
``--failure-status=504'' Antworten mit dem HTTP-Status „504 Gateway Timeout“
würden als Misserfolge gelten. Vorsichtsmaßnahme: Diese Option wird derzeit unterstützt
Nur Sitzungs-Workloads (siehe --wsess und --wsesslog Optionen).

-h

--help Druckt eine Zusammenfassung der verfügbaren Optionen und ihrer Parameter.

--Schwein Diese Option verlangt, so viele TCP-Ports wie nötig zu nutzen. Ohne das
Option, httperf ist typischerweise auf die Verwendung kurzlebiger Ports beschränkt (im Bereich von
1024 bis 5000). Dieser begrenzte Portbereich kann schnell zu einem Engpass werden
Im Allgemeinen ist es eine gute Idee, diese Option für ernsthafte Tests anzugeben. Auch das
Bei der Messung von NT-Servern muss die Option angegeben werden, da sie ein TCP vermeidet
Inkompatibilität zwischen NT- und UNIX-Maschinen.

--http-version=S
Gibt die Versionszeichenfolge an, die in den an gesendeten Anforderungen enthalten sein soll
Server. Standardmäßig wird die Versionszeichenfolge „1.1“ verwendet. Diese Option kann auf eingestellt werden
„1.0“, um die Generierung von HTTP/1.0-Anfragen zu erzwingen. Setzen Sie diese Option auf „any“.
Ein anderer Wert als „1.0“ oder „1.1“ kann zu undefiniertem Verhalten führen.

--max-Verbindungen=N
Gibt das höchstens an N Für jede Sitzung werden Verbindungen geöffnet. Diese Option ist
in Verbindung mit Optionen sinnvoll --wsess und --wsesslog nur.

--max-piped-calls=N
Gibt das höchstens an N Pipeline-Aufrufe werden für jede Verbindung ausgegeben. Das
Option ist in Verbindung mit Optionen sinnvoll --wsess und --wsesslog nur.

--methode=S
Gibt die Methode an, die beim Ausgeben einer HTTP-Anfrage verwendet werden soll. Wenn dies
Wird die Option nicht angegeben, wird die GET-Methode verwendet. Die Methode S kann beliebig sein
Zeichenfolge, ist aber normalerweise eine von GET, HEAD, PUT, POST usw.

--num-calls=N
Diese Option ist nur für anforderungsorientierte Workloads sinnvoll. Es gibt die an
Gesamtzahl der Anrufe, die für jede Verbindung ausgegeben werden müssen, bevor sie geschlossen wird. Wenn N is
größer als 1, muss der Server dauerhafte Verbindungen unterstützen. Der Standardwert
für diese Option ist 1. Wenn --burst-length eingestellt ist B, dann ist die N Anrufe werden ausgegeben
in Schüben von B jeweils Pipeline-Aufrufe. Somit wird die Gesamtzahl solcher Bursts betragen
N / B (pro Verbindung).

--num-conns=N
Diese Option ist nur für anforderungsorientierte Workloads sinnvoll. Es gibt die an
Gesamtzahl der zu erstellenden Verbindungen. Bei jeder Verbindung werden Anrufe als ausgegeben
durch Optionen angegeben --num-calls und --burst-length. Ein Test stoppt, sobald der N
Verbindungen wurden entweder abgeschlossen oder sind fehlgeschlagen. Es wird davon ausgegangen, dass eine Verbindung vorhanden ist
fehlgeschlagen, wenn eine Aktivität auf der Verbindung keinen Fortschritt für weitere Verbindungen ermöglicht
als die durch die Timeout-Optionen angegebene Zeit --Auszeit und --think-timeoutdem „Vermischten Geschmack“. Seine
Der Standardwert für diese Option ist 1.

--periode=[D]T1[,T2]
Gibt das Zeitintervall zwischen der Erstellung von Verbindungen oder Sitzungen an.
Verbindungen werden standardmäßig erstellt, Sitzungen bei Bedarf --wsess or --wsesslog hat
angegeben wurde. Diese Verbindung/Sitzung kann alternativ auch „Interarrival Time“ sein
angegeben durch die --Bewertung Option, obwohl mehr Flexibilität mit verfügbar ist
--Zeitraum. Das D Der Parameter gibt die Zeitverteilung zwischen den Ankunftszeiten an. Wenn
weggelassen oder auf `` gesetztd'' wird wie angegeben ein deterministischer (d. h. fester) Zeitraum verwendet
nach Parameter T1 in Einheiten von Sekunden. Wenn D ist auf „“ gesetzte'', eine Exponentialfunktion (d. h.
Poisson-Verteilung wird mit einer mittleren Zwischenankunftszeit von verwendet T1. Schließlich, wenn D
ist auf „“ gesetztu'', eine gleichmäßige Verteilung über das Intervall [T1,T2) wird für die verwendet
Zwischenankunftszeit. In allen Fällen führt ein Zeitraum von 0 zu Verbindungen oder Sitzungen
sequentiell generiert (eine neue Verbindung/Sitzung wird initiiert, sobald die
der vorherige wird abgeschlossen). Der Standardwert für diese Option ist 0. Beachten Sie Folgendes
spezifizieren, zum Beispiel, --rate=5 ist äquivalent zu spezifizieren --period=d0.2 or
--period=0.2. Durch Angabe --period=u1,3, die Zwischenankunftszeiten werden zufällig sein
wählbar aus dem Intervall zwischen 1 und 3 Sekunden. Die spezifische Reihenfolge von
(pseudo-)zufällige Zwischenankunftszeiten sind von eins identisch httperf zu einem anderen laufen als
solange die Werte für die --Zeitraum und --Klient Optionen sind identisch.

--port=N
Diese Option gibt die Portnummer an N auf die der Webserver wartet
HTTP-Anfragen. Standardmäßig, httperf verwendet Portnummer 80.

--Drucken-Antwort[=[Kopfzeile|Körper]]
Fordert das Drucken der Antwortkopfzeilen, des Hauptteils und der Zusammenfassung an. Die Ausgabe ist
an die Standardausgabe weitergeleitet. Antwortkopfzeilen werden mit dem Präfix „RH“ (Antworttext) versehen
Zeilen wird das Präfix „RB“ vorangestellt, und der Zusammenfassung der Antwortgröße wird das Präfix „RS“ vorangestellt. Der
Auf das Präfix folgt eine Seriennummer, die den Anruf eindeutig identifiziert
Die Antwortzeile ist für und ein Doppelpunkt (:“), der den Anfang markiert
eigentliche Antwortzeile. Um nur Antwortkopfzeilen zu drucken, übergeben Sie das Argument Kopfzeile dies
Möglichkeit. Um nur den Antworttext zu drucken, übergeben Sie das Argument Körper zu dieser Option.

--print-request[=[Kopfzeile|Körper]]
Fordert das Drucken der Anforderungsheader, des Hauptteils (falls vorhanden) und an
Zusammenfassung. Die Ausgabe erfolgt an die Standardausgabe. Anforderungskopfzeilen sind
mit dem Präfix „SH“, den Anforderungstextzeilen mit dem Präfix „SB“ und der Anforderungszusammenfassung
wird durch „SS“ vorangestellt. Dem Präfix folgen die Seriennummer des Anrufs und ein
Doppelpunkt (:): Zeichen, das den Anfang der eigentlichen Antwortzeile markiert. Zu drucken
Nur Header anfordern, Argument übergeben Kopfzeile zu dieser Option. Um nur die zu drucken
Anfragetext, Argument übergeben Körper zu dieser Option.

--rate=X
Gibt die feste Rate an, mit der Verbindungen oder Sitzungen erstellt werden. Verbindungen
werden standardmäßig erstellt, Sitzungen falls Option --wsess or --wsesslog wurde
angegeben. In beiden Fällen führt eine Rate von 0 dazu, dass Verbindungen oder Sitzungen stattfinden
sequentiell generiert (eine neue Sitzung/Verbindung wird initiiert, sobald die
der vorherige wird abgeschlossen). Der Standardwert für diese Option ist 0.

--recv-buffer=N
Gibt die maximale Größe der Socket-Empfangspuffer an, die zum Empfang von HTTP verwendet werden
Antworten. Standardmäßig beträgt die Grenze 16 KB. Ein kleinerer Wert kann die Gedächtnisleistung verbessern.
eingeschränkte Clients, während bei der Kommunikation mit möglicherweise ein größerer Wert erforderlich sein kann
einem Server über eine Verbindung mit hoher Bandbreite und hoher Latenz.

--retry-on-failure
Diese Option ist nur für Sitzungs-Workloads von Bedeutung (siehe --wsess und
--wsesslog Optionen). Falls angegeben, ein Aufruf, der zu einer Fehlerantwort führt (wie
definiert durch die --failure-status Option) wird sofort erneut versucht, anstatt zu verursachen
die Sitzung fehlschlägt.

--send-buffer=N
Gibt die maximale Größe der Socket-Sendepuffer an, die zum Senden von HTTP-Anfragen verwendet werden.
Standardmäßig beträgt die Grenze 4 KB. Ein kleinerer Wert kann Clients mit eingeschränktem Speicher helfen
wohingegen ein größerer Wert erforderlich sein kann, wenn große Anfragen an einen Server generiert werden
über eine Verbindung mit hoher Bandbreite und hoher Latenz verbunden.

--server=S
Gibt den IP-Hostnamen des Servers an. Standardmäßig lautet der Hostname „localhost“.
gebraucht. Diese Option sollte immer angegeben werden, da dies im Allgemeinen keine gute Idee ist
Führen Sie den Client und den Server auf demselben Computer aus.

--server-name=S
Gibt den (Standard-)Servernamen an, der im Header „Host:“ von jedem angezeigt wird
Anfrage gesendet von httperf. Ohne diese Option wird der Hostname (oder die IP-Adresse)
durch Option angegeben --Server wird stattdessen verwendet.

--session-cookie
Wenn diese Option aktiviert ist, wird die Cookie-Verwaltung pro Sitzung aktiviert.
Dies bedeutet, dass eine Antwort auf eine Anfrage erfolgt, die von einer Sitzung generiert wurde X
Enthält ein Cookie, dann werden alle zukünftigen Anfragen pro Sitzung gesendet X wird dies einschließen
auch Kekse. Derzeit ist der Cookie-Manager in httperf unterstützt nur ein Cookie
pro Sitzung. Wenn ein zweites Cookie empfangen wird, überschreibt das neue Cookie das
vorhanden ist, und eine Warnmeldung wird ausgegeben, wenn „--debug 1“ aktiviert ist.

--ssl Gibt an, dass die gesamte Kommunikation zwischen httperf und der Server sollte das nutzen
Secure Sockets Layer (SSL)-Protokoll. Diese Option ist nur verfügbar, wenn httperf wurde
kompiliert mit aktivierter SSL-Unterstützung.

--ssl-ciphers=L
Diese Option ist nur sinnvoll, wenn SSL verwendet wird (siehe --ssl Möglichkeit). Diese Option
gibt die Liste an L von Chiffre-Suiten, die httperf kann bei der Aushandlung eines sicheren Betrags verwendet werden
Verbindung mit dem Server. Wenn die Liste mehr als eine Cipher Suite enthält, wird die
Chiffren müssen durch einen Doppelpunkt getrennt werden. Wenn der Server keines davon akzeptiert
aufgelisteten Cipher-Suites schlägt der Verbindungsaufbau fehl und httperf wird aussteigen
sofort. Wenn diese Option nicht angegeben ist, wenn die --ssl Option ist dann vorhanden
httperf verwendet alle vom zugrunde liegenden SSL bereitgestellten SSLv3-Verschlüsselungssammlungen
Bibliothek.

--ssl-no-reuse
Diese Option ist nur sinnvoll, wenn SSL und Sitzungen verwendet werden (siehe --ssl, --wsess,
--wsesslog). Wenn eine SSL-Verbindung hergestellt wird, empfängt der Client eine Sitzung
Identifikator (Sitzungs-ID) vom Server. Bei nachfolgenden SSL-Verbindungen der Client
Normalerweise wird diese Sitzungs-ID wiederverwendet, um die Kosten für eine Wiederholung zu vermeiden
(langsamer) SSL-Handshake, um eine neue SSL-Sitzung einzurichten und eine andere Sitzungs-ID zu erhalten
(Selbst wenn der Client versucht, eine Sitzungs-ID wiederzuverwenden, kann der Server dies erzwingen
Client, eine Sitzung neu zu verhandeln). Standardmäßig httperf verwendet die Sitzungs-ID überall wieder
alle Verbindungen in einer Sitzung. Wenn die --ssl-no-reuse Dann ist die Option in Kraft
httperf wird die Sitzungs-ID nicht wiederverwenden und der gesamte SSL-Handshake wird es tun
wird für jede neue Verbindung in einer Sitzung durchgeführt.

--think-timeout=X
Gibt die maximale Zeit an, die der Server möglicherweise benötigt, um das Senden der Antwort zu initiieren
für eine bestimmte Anfrage. Beachten Sie, dass dieser Timeout-Wert zum normalen Timeout addiert wird
Wert (siehe Option --Auszeit). Beim Zugriff auf statische Webinhalte ist dies normalerweise nicht der Fall
Es ist erforderlich, diese Option anzugeben. Allerdings bei der Durchführung von Tests mit langer Laufzeit
Bei CGI-Skripten kann es erforderlich sein, diese Option zu verwenden, um eine größere Antwortzeit zu ermöglichen.
mal. Der Standardwert für diese Option ist null Sekunden, was bedeutet, dass der Server
muss in der Lage sein, innerhalb des normalen Timeout-Werts zu antworten.

--timeout=X
Gibt die Zeitspanne an X zur Verbesserung der Gesundheitsgerechtigkeit httperf ist bereit, auf einen Server zu warten
Reaktion. Das Timeout wird in Sekunden angegeben und kann eine Bruchzahl sein
(z.B, --Auszeit 3.5). Dieser Timeout-Wert wird beim Einrichten eines TCP verwendet
Verbindung, beim Senden einer Anfrage, beim Warten auf eine Antwort und beim Empfang einer
Antwort. Wenn während einer dieser Aktivitäten eine Anfrage nicht voranschreitet
innerhalb der vorgegebenen Zeit, httperf hält den Antrag für erloschen, schließt den
zugehörige Verbindung oder Sitzung und erhöht die Kunde-timo Fehleranzahl. Der
Der tatsächliche Timeout-Wert, der beim Warten auf eine Antwort verwendet wird, ist die Summe aus diesem Timeout und
die Denk-Auszeit (siehe Option --think-timeout). Standardmäßig beträgt der Timeout-Wert
Unendlichkeit.

--uri=S
Gibt diesen URI an S auf den Server zugegriffen werden soll. Für einen Teil der Arbeitsbelastung
Generatoren (z. B. --wset), gibt diese Option das Präfix für die URIs an
zugegriffen.

-v

- ausführlich
Versetzt httperf in den ausführlichen Modus. In diesem Modus können zusätzliche Ausgaben wie z
Einzelne Muster der Antwortraten und ein Histogramm der Verbindungslebensdauer werden ausgedruckt.

-V

--Version
Druckt die Version von httperf.

--wlog=B,F
Mit dieser Option kann eine bestimmte Reihenfolge von URI-Zugriffen generiert werden. Das ist
nützlich, um beispielsweise die in einer Server-Logdatei aufgezeichneten Zugriffe wiederzugeben.
Parameter F ist der Name einer Datei, die die durch ASCII NUL getrennte Liste von URIs enthält
darauf sollte zugegriffen werden. Wenn Parameter B ist auf „“ gesetzty'', httperf wird sich umwickeln
an den Anfang der Datei, wenn das Ende der Liste (also der Liste der URIs) erreicht ist
wiederholt aufgerufen wird). Mit B auf „“ setzenn'', der Test wird spätestens beendet
wenn das Ende der URI-Liste erreicht ist.

--wsess=N1,N2,X
Fordert die Generierung und Messung von Sitzungen anstelle einzelner Anfragen an.
Eine Sitzung besteht aus einer Folge von Bursts, die vom Benutzer in Abständen angeordnet werden.
Zeit. Jeder Burst besteht aus einer festen Zahl L der Aufrufe an den Server (L is
durch Option angegeben --burst-length). Die Anrufe in einem Burst werden wie folgt ausgegeben:
zunächst erfolgt ein einzelner Aufruf. Sobald die Antwort auf diesen ersten Anruf erfolgt ist
Nachdem der Burst vollständig empfangen wurde, werden alle verbleibenden Anrufe im Burst gleichzeitig ausgegeben. Der
Gleichzeitige Aufrufe werden entweder als Pipeline-Aufrufe auf einer vorhandenen persistenten Instanz ausgegeben
Verbindung oder als Einzelgespräche auf separaten Verbindungen. Ob ein hartnäckiger
Welche Verbindung verwendet wird, hängt davon ab, ob der Server auf den ersten Anruf mit einem antwortet
Antwort, die eine „Connection: close“-Kopfzeile enthält. Wenn eine solche Zeile ist
Vorhandene separate Anschlüsse werden genutzt.

Die Option gibt die folgenden Parameter an: N1 ist die Gesamtzahl der Sitzungen
generieren, N2 ist die Anzahl der Anrufe pro Sitzung und X ist die Denkzeit des Benutzers
(in Sekunden), der aufeinanderfolgende Anrufbündel trennt. Zum Beispiel die Optionen
``--wsess=100,50,10 --burst-len 5''ergäbe 100 Sitzungen mit insgesamt 50
ruft jeden an. Da jeder Burst eine Länge von 5 Anrufen hat, ergibt sich eine Gesamtsumme von 10 Anrufbursts
würde pro Sitzung generiert werden. Die Bedenkzeit des Benutzers zwischen Anrufstößen wäre
10 Sekunden. Beachten Sie die Bedenkzeit des Benutzers X bezeichnet die Zeit zwischen dem Empfang der
letzte Antwort des vorherigen Anrufbündels und das Senden der ersten Anfrage des
nächster Ausbruch.

Ein Test mit Sitzungen endet, sobald die angeforderte Anzahl erreicht ist N1 von Sitzungen
sind entweder fehlgeschlagen oder abgeschlossen. Eine Sitzung gilt gegebenenfalls als fehlgeschlagen
Der Vorgang in einer Sitzung dauert länger als die durch Optionen angegebenen Zeitüberschreitungen
--Auszeit und --think-timeout. Darüber hinaus schlägt eine Sitzung auch fehl, wenn der Server
gibt eine Antwort mit einem Statuscode zurück, der mit dem durch die Option angegebenen übereinstimmt --Versagen-
Status.

--wsesslog=N,X,F
Dies gibt einen Sitzungs-Workload-Generator ähnlich an --wsess (Bitte lesen Sie das
Beschreibung zuerst). Mit --wsesslog Allerdings sind viele Aspekte von Benutzersitzungen,
einschließlich Anzahl und Reihenfolge der URIs, Anforderungsmethode, Denkzeit und Burst-
Längenparameter können in einer Eingabedatei angegeben werden F. Zwei weitere Parameter sind
einbehalten von --wsess, nämlich N, die Anzahl der zu initiierenden Sitzungen und X,
Bedenkzeit des Benutzers von Burst zu Burst (beachten Sie, dass dies eine Standardzeit wird, da die
Eingabedatei F Sie können die Bedenkzeit des Benutzers auch pro Burst festlegen. Ein kleines
Eine Beispieleingabedatei kann die einstellbaren Parameter am einfachsten anzeigen:

# Kommentarzeilen beginnen mit einem „#“ als erstem
# Zeichen. Zeilen mit nur Leerzeichen als Trennzeichen
# Sitzungen (mehrere Leerzeilen werden nicht generiert
# „null“ Sitzungen). Alle anderen Zeilen geben a an
# uri-sequence (1 uri pro Zeile). Wenn der erste
# Zeichen der Zeile ist Leerzeichen (z. B. Leerzeichen).
# oder Tab), wird die URL als Teil von a betrachtet
# Burst, der nach dem vorherigen gesendet wird
# Nicht-Burst-URI.

# Sitzung 1 Definition (dies ist ein Kommentar)
/foo.html think=2.0
/pict1.gif
/pict2.gif
/foo2.html method=POST content='Daten veröffentlichen'
/pict3.gif
/pict4.gif

# Definition der Sitzung 2
/foo3.html method=POST content="Multiline\ndata"
/foo4.html method=HEAD

Die obige Beschreibung spezifiziert 2 Sitzungen. Die erste Sitzung beginnt mit a
Anfrage für /foo.html. Wenn die /foo.html-Antwort zurückkommt, erfolgt ein Burst von 2
Anfragen folgen (/pict1.gif und /pict2.gif). Als die letzte dieser Antworten
Wird eine Nachricht empfangen, wird vor der nächsten Anfrage eine Bedenkzeit von zwei Sekunden für den Benutzer eingefügt
/foo2.html wird ausgegeben. Diese Anfrage wird als POST gesendet. Die veröffentlichten Daten können sein
zwischen einfachen oder doppelten Anführungszeichen enthalten. Zeilenumbrüche können in veröffentlichten Daten erscheinen
als „\n“ oder als „\“ ''. Auf die /foo2.html-Antwort folgt ein Burst
Anfrage von /pict3.gif und /pict4.gif, die diese Sitzung abschließt. Der Zweite
Die Sitzung wird einige Zeit nach der ersten gestartet, wie durch angegeben --Bewertung or
--Zeitraum Optionen.

Die zweite Sitzung besteht aus zwei Anfragen, die durch die Standard-Bedenkzeit des Benutzers getrennt sind
wie von der . angegeben X Parameter der --wsesslog Möglichkeit. Wenn die N Parameter von
--wsesslog ist größer als die Anzahl der in der Eingabedatei definierten Sitzungen F, dann ist die
definierte Sitzungen werden wiederholt verwendet, bis N Sitzungen wurden erstellt (d. h. die
definierte Sitzungen werden im Round-Robin-Verfahren verwendet).

Man sollte die Verwendung vermeiden --wsesslog in Verbindung mit anderen httperf Optionen, die
Steuern Sie nämlich auch das Sitzungsverhalten und die Workload-URIs --burst-length, --wsess,
--wlog, und --wset.

--wset=N,X
Mit dieser Option kann eine Liste von URIs mit einer bestimmten Geschwindigkeit durchsucht werden. Parameter
N Gibt die Anzahl der unterschiedlichen URIs an, die generiert werden sollen X spezifiziert
die Rate, mit der auf neue URIs zugegriffen wird. Eine Rate von 0.25 würde das dasselbe bedeuten
Auf den URI wird viermal hintereinander zugegriffen, bevor mit dem nächsten URI fortgefahren wird. Das
Die Art des Zugriffsmusters ist hilfreich bei der Generierung einer Arbeitslast, die eine relativ hohe Arbeitslast verursacht
vorhersehbare Menge an Datenverkehr im Festplatten-E/A-Subsystem des Servers (vorausgesetzt N
und die Dateien, auf die zugegriffen wird, sind groß genug, um den Puffercache des Servers zu überschreiten). Der
Die generierten URIs haben die Form Präfix/Weg.html, wo Präfix ist das URI-Präfix
durch Option angegeben --wset und Weg wird wie folgt generiert: für die i-te Datei in
Schreiben Sie den Arbeitssatz auf i im Dezimalformat, indem der Zahl so viele Nullen vorangestellt werden
wie nötig, um eine Zeichenfolge zu erhalten, die so viele Ziffern hat wie N-1. Fügen Sie dann einen Schrägstrich ein
Zeichen zwischen jeder Ziffer. Zum Beispiel die 103. Datei in einem Arbeitssatz
Bestehend aus 1024 Dateien würde ein Pfad von „“ resultieren0 / 1 / 0 / 3''. Wenn also die URI-
Präfix ist /wset1024, dann wäre der URI, auf den zugegriffen wird /wset1024/0/1/0/3.html.
Mit anderen Worten: Die Dateien auf dem Server müssen als 10-facher Baum organisiert werden.

AUSGABE


In diesem Abschnitt wird die Statistikausgabe am Ende jedes Testlaufs beschrieben. Das Grundlegende
Die unten angezeigten Informationen werden unabhängig vom ausgewählten Workload-Generator gedruckt.

Gesamt: Verbindungen 30000 Anfragen 29997 Antworten 29997 Testdauer 299.992 s

Sichere Bewertung: 100.0 Verbindungen/s (10.0 ms/Verbindung, <=14 gleichzeitige Verbindungen)
Sichere Zeit [MS]: Min. 1.4 Durchschnitt 3.0 Max. 163.4 Median 1.5 Standardabw. 7.3
Sichere Zeit [MS]: verbinden 0.6
Sichere Länge [Antworten/Verbindung]: 1.000

PREISANFRAGE (Request) Bewertung: 100.0 Anforderung/s (10.0 ms/Anforderung)
PREISANFRAGE (Request) Größe [B]: 75.0

antworten Rate [Antworten/s]: Min. 98.8 Durchschnitt 100.0 Max. 101.2 Standardabw. 0.3 (60 Proben)
antworten Zeit [MS]: Antwort 2.4 Übertragung 0.0
antworten Größe [B]: Kopfzeile 242.0 Inhalt 1010.0 Fußzeile 0.0 (insgesamt 1252.0)
antworten Status: 1xx=0 2xx=29997 3xx=0 4xx=0 5xx=0

CPU Zeit [S]: Benutzer 94.31 System 205.26 (Benutzer 31.4 % System 68.4 % Gesamt 99.9 %)
Netto- I / O: 129.6 KB/s (1.1*10^6 bps)

Fehler: insgesamt 3 client-timo 0 socket-timo 0 connrefused 3 connreset 0
Fehler: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

Es gibt sechs Statistikgruppen: Gesamtergebnisse („Total“), verbindungsbezogen
Ergebnisse („Connection“), Ergebnisse im Zusammenhang mit der Ausgabe von HTTP-Anfragen („Request“),
Ergebnisse im Zusammenhang mit den vom Server empfangenen Antworten („Reply“), Sonstiges
Ergebnisse in Bezug auf die CPU- („CPU“) und Netzwerkauslastung („Net I/O“) und, zu guter Letzt
nicht zuletzt eine Zusammenfassung der aufgetretenen Fehler („Errors“).

Gesamtabschnitt
In diesem Abschnitt wird zusammengefasst, wie viele TCP-Verbindungen von initiiert wurden httperfWie
Wie viele Anfragen es verschickt hat, wie viele Antworten es erhalten hat und wie hoch der Gesamttest war
Dauer war. In der oben gezeigten Beispielausgabe wurden 30,000 Verbindungen erstellt.
Es wurden 29,997 Anfragen verschickt und 29,997 Antworten eingegangen. Die Dauer von
Der Test dauerte fast genau 5 Minuten (300 Sekunden).

Verbindungsabschnitt
In diesem Abschnitt werden Informationen zu den vom Tool generierten TCP-Verbindungen vermittelt.
Konkret zeigt die Zeile „Verbindungsrate“, dass neue Verbindungen zustande kamen
mit einer Rate von 100.0 Verbindungen pro Sekunde initiiert. Dieser Satz entspricht einem
Zeitraum von 10.0 Millisekunden pro Verbindung. Die letzte Zahl in dieser Zeile wird angezeigt
dass höchstens 14 Verbindungen gleichzeitig geöffnet waren.

Die erste Zeile mit der Bezeichnung „Verbindungszeit“ enthält lebenslange Statistiken für den Erfolg
Verbindungen. Die Lebensdauer einer Verbindung ist die Zeit zwischen einer TCP-Verbindung
initiiert und der Zeitpunkt, zu dem die Verbindung geschlossen wird. Es wird ein Zusammenhang betrachtet
erfolgreich, wenn mindestens ein Anruf erfolgreich abgeschlossen wurde. Im Beispiel
In der Ausgabe gibt die Zeile an, dass die minimale („min“) Verbindungslebensdauer 1.4 betrug
Millisekunden betrug die durchschnittliche („avg“) Lebensdauer 3.0 Millisekunden, das Maximum
(„max“) betrug 163.4 Millisekunden, die mittlere („mediane“) Lebensdauer betrug 1.5
Millisekunden und dass die Standardabweichung der Lebensdauern 7.3 betrug
Millisekunden. Die mittlere Lebensdauer wird auf der Grundlage eines Histogramms mit eins berechnet
Auflösung im Millisekundenbereich und eine maximale Lebensdauer von 100 Sekunden. Somit beträgt der Median
auf eine halbe Millisekunde genau, wenn mindestens die Hälfte davon erfolgreich ist
Verbindungen haben eine Lebensdauer von maximal 100 Sekunden.

Die nächste Statistik in diesem Abschnitt ist die durchschnittliche Zeit, die zum Einrichten eines TCP benötigt wurde
Verbindung. Es werden nur erfolgreiche TCP-Verbindungsaufbauten gezählt. Im
Die zweite Zeile mit der Bezeichnung „Verbindungszeit“ zeigt beispielsweise, dass dies im Durchschnitt der Fall ist
Der Verbindungsaufbau dauerte 0.6 Millisekunden.

Die letzte Zeile in diesem Abschnitt trägt die Bezeichnung „Verbindungslänge“. Sie gibt die an
durchschnittliche Anzahl der Antworten, die bei jeder Verbindung eingegangen sind, die mindestens eine erhalten hat
Antwort (d. h. Verbindungen, die vor der ersten Antwort fehlgeschlagen sind, sind es nicht
gezählt). Aufgrund dauerhafter Verbindungen kann diese Zahl größer als 1.0 sein.

Anfragebereich
Die Zeile mit der Bezeichnung „Anfragerate“ gibt die Rate an, mit der HTTP-Anfragen ausgegeben wurden
und der Zeitraum, dem dieser Satz entspricht. Im obigen Beispiel die Anfrage
Die Rate betrug 100.0 Anfragen pro Sekunde, was 10.0 Millisekunden pro Sekunde entspricht
Anfrage. Solange keine dauerhaften Verbindungen verwendet werden, führt dies dazu
Die Ergebnisse im Abschnitt „Verbindung“ sind den Ergebnissen im Abschnitt „Verbindung“ sehr ähnlich oder identisch.
Bei der Verwendung dauerhafter Verbindungen können jedoch mehrere Anrufe gleichzeitig ausgeführt werden
In diesem Fall wären die Ergebnisse unterschiedlich.

Die Zeile mit der Bezeichnung „Anfragegröße“ gibt die durchschnittliche Größe der HTTP-Anfragen in an
Bytes. Im obigen Beispiel betrug die durchschnittliche Anfragegröße 75 Byte.

Antwortbereich
Für einfache Messungen ist dieser Abschnitt als Linie oft der interessanteste
Mit der Bezeichnung „Antwortrate“ werden verschiedene Statistiken zur Antwortrate angezeigt. Im Beispiel
oben betrug die minimale („min“) Antwortrate 98.8 Antworten pro Sekunde, der Durchschnitt
(„avg“) betrug 100 Antworten pro Sekunde und die maximale Rate („max“) betrug 101.2
Antworten pro Sekunde. Die Standardabweichung betrug 0.3 Antworten pro Sekunde. Die Nummer
Die in Klammern eingeschlossene Zahl zeigt, dass 60 Antwortratenproben erfasst wurden. Bei
Geschenk, httperf Erfasst alle fünf Sekunden eine Rate-Probe. Um eine zu erhalten
Um eine aussagekräftige Standardabweichung zu erhalten, wird empfohlen, die Tests lange genug durchzuführen
Es werden mindestens dreißig Proben entnommen. Dies entspricht einer Testdauer von mindestens
150 Sekunden.

Die Zeile mit der Bezeichnung „Antwortzeit“ gibt Auskunft darüber, wie lange es gedauert hat
Server antworten soll und wie lange es gedauert hat, bis die Antwort eingegangen ist. Im Beispiel ist es
Es dauerte durchschnittlich 2.4 Millisekunden zwischen dem Senden des ersten Bytes der Anfrage und
Empfangen des ersten Bytes der Antwort. Die Zeit zum „Übertragen“ oder Lesen der
Die Antwort war zu kurz, um gemessen zu werden, daher wird sie als Null angezeigt. Das ist typisch, wenn
Die gesamte Antwort passt in ein einzelnes TCP-Segment.

Die nächste Zeile mit der Bezeichnung „Antwortgröße“ enthält Statistiken zur durchschnittlichen Größe von
Die Antworten – alle Zahlen sind in gemeldeten Bytes. Insbesondere listet die Zeile die auf
durchschnittliche Länge der Antwortkopfzeilen, des Inhalts und der Fußzeilen (HTTP/1.1 verwendet Fußzeilen, um
die „chunked“ Übertragungskodierung realisieren). Der Einfachheit halber die durchschnittliche Gesamtsumme
Die Anzahl der Bytes in den Antworten wird ebenfalls in Klammern angegeben. Im Beispiel die
Die durchschnittliche Header-Länge („Header“) betrug 242 Byte, die durchschnittliche Inhaltslänge
(„Inhalt“) war 1010 Bytes groß und es gab keine Fußzeilen (die Länge von „Fußzeile“ beträgt
null). Die Gesamtlänge der Antwort beträgt durchschnittlich 1252 Byte.

Die letzte Zeile in diesem Abschnitt ist ein Histogramm der wichtigsten Statuscodes, die in empfangen wurden
die Antworten vom Server. Der Hauptstatuscode ist die „Hunderter“-Stelle von
den vollständigen HTTP-Statuscode. Im Beispiel hatten alle 29,997 Antworten einen Hauptstatus
Code von 2. Es ist eine gute Vermutung, dass alle Statuscodes „200 OK“ waren, aber der
Die Informationen im Histogramm sind nicht detailliert genug, um den Status unterscheiden zu können
Codes mit demselben Hauptcode.

Abschnitt „Verschiedenes“.
Dieser Abschnitt beginnt mit einer Zusammenfassung der CPU-Auslastung auf dem Client-Computer.
Im Beispiel zeigt die Zeile mit der Bezeichnung „CPU-Zeit“, dass 94.31 Sekunden aufgewendet wurden
Bei der Ausführung im Benutzermodus („Benutzer“) wurden 205.26 Sekunden für die Ausführung im System aufgewendet
Modus („System“) und dass dies einer Ausführung im Benutzermodus von 31.4 % und einer Ausführung von 68.4 % entspricht.
Systemausführung. Die Gesamtauslastung betrug 99.9 %, was angesichts dessen zu erwarten ist
httperf ist ein CPU-Fresser. Eine Gesamt-CPU-Auslastung von deutlich unter 100 % liegt vor
Dies ist ein Zeichen dafür, dass es konkurrierende Prozesse gab, die den Test störten.

Die Zeile mit der Bezeichnung „Net I/O“ gibt den durchschnittlichen Netzwerkdurchsatz in Kilobyte pro an
Sekunde (wobei ein Kilobyte 1024 Bytes ist) und in Megabit pro Sekunde (wobei ein Megabit
ist 10^6 Bit). Im Beispiel beträgt die durchschnittliche Netzwerknutzung etwa 129.6 Kilobyte
pro Sekunde wurde aufrechterhalten. Die Zahl in Klammern zeigt, dass dies entspricht
etwa 1.1 Megabit pro Sekunde. Diese Netzwerkbandbreite wird basierend auf berechnet
Anzahl der auf den TCP-Verbindungen gesendeten und empfangenen Bytes. Mit anderen Worten, das stimmt
berücksichtigt nicht die möglicherweise aufgetretenen Netzwerk-Header oder TCP-Neuübertragungen.

Abschnitt „Fehler“.
Der letzte Abschnitt enthält Statistiken zu den Fehlern, die während eines aufgetreten sind
prüfen. Im Beispiel zeigen die beiden Zeilen mit der Bezeichnung „Fehler“, dass es einen gab
Insgesamt drei Fehler und dass alle drei Fehler auf die Weigerung des Servers zurückzuführen waren
eine Verbindung akzeptieren („connrefused“). Eine Beschreibung jedes Fehlerzählers
folgt:

Kunde-Timo: Die Häufigkeit, mit der eine Sitzung, Verbindung oder ein Anruf aufgrund von a fehlgeschlagen ist
Client-Timeout (wie durch angegeben). --Auszeit und --think-timeout) Optionen.

Steckdosen-Timo: Die Häufigkeit, mit der eine TCP-Verbindung auf Socket-Ebene fehlgeschlagen ist
Zeitüberschreitung (ETIMEDOUT).

verwirrt: Die Häufigkeit, mit der ein TCP-Verbindungsversuch mit a fehlgeschlagen ist
Fehler „Verbindung vom Server abgelehnt“ (ECONNREFUSED).

connreset: Die Häufigkeit, mit der eine TCP-Verbindung aufgrund eines RESETs fehlgeschlagen ist
Server. Normalerweise wird ein RESET empfangen, wenn der Client versucht, Daten an zu senden
der Server zu einem Zeitpunkt, an dem der Server sein Ende der Verbindung bereits geschlossen hat. NT
Server senden auch RESETs, wenn sie versuchen, eine neue Verbindung herzustellen, wenn die
Die Hörwarteschlange ist voll.

fd-nicht verfügbar: Die Häufigkeit, mit der httperf Der Prozess hatte keine Dateideskriptoren.
Immer wenn dieser Wert ungleich Null ist, sind die Testergebnisse bedeutungslos, da die
Der Client war überlastet (siehe Abschnitt „TIMEOUT-WERTE AUSWÄHLEN“).

addrunavail: Die Häufigkeit, mit der der Client keine TCP-Portnummern hatte
(EADDRNOTAVAIL). Dieser Fehler sollte niemals auftreten. Wenn ja, sollten die Ergebnisse sein
verworfen.

ftab-full: Gibt an, wie oft die Dateideskriptortabelle des Systems voll ist. Nochmal,
Dieser Fehler sollte niemals auftreten. Wenn dies der Fall ist, sollten die Ergebnisse verworfen werden.

andere: Die Häufigkeit, mit der ein anderer Fehlertyp aufgetreten ist. Wann immer dies der Fall ist
Ist der Zähler ungleich Null, muss die eigentliche Fehlerursache ermittelt werden. Zu
dabei behilflich sein, httperf gibt den Fehlercode (errno) der ersten Unbekannten aus
Fehler, die während eines Testlaufs auftreten.

Wann --wsess or --wsesslog angegeben, httperf generiert und misst stattdessen Sitzungen
Am Ende eines Tests werden die einzelnen Anrufe und zusätzliche Statistiken ausgedruckt. Ein
Beispielausgabe ist unten dargestellt.

Session Rate [Sitzung/s]: Min. 0.00 Durchschnitt 0.59 Max. 2.40 Standardabw. 0.37 (240/450)
Session: durchschnittlich 6.45 Verbindungen/Sitzung
Session Lebensdauer [S]: 123.9
Session Ausfallzeit [S]: 58.5
Session Länge Histogramm: 4 7 4 ... 3 3 240

Die Zeile mit der Bezeichnung „Sitzungsrate“ zeigt die minimale, durchschnittliche und maximale Rate an
abgeschlossene Sitzungen (basierend auf einem 5-Sekunden-Abtastintervall). Es zeigt auch den Standard
Abweichung der Sitzungsabschlussrate. Die Zahlen in Klammern geben an, wie viele
welche Sitzungen erfolgreich waren und wie viele Sitzungen initiiert wurden. Im obigen Beispiel ist die
Die minimalen, durchschnittlichen und maximalen Sitzungsabschlussraten betrugen 0.00, 0.59 und 2.40 Sitzungen
pro Sekunde bzw. Die Standardabweichung betrug 0.37 Sitzungen pro Sekunde und 240 Outs
Von 450 Sitzungen wurden erfolgreich abgeschlossen (210 scheiterten aufgrund von Fehlern wie Zeitüberschreitungen).

Die nächste Zeile mit der Bezeichnung „Sitzung:“ zeigt die durchschnittliche Länge einer Sitzung, gemessen in
Verbindungen. Im obigen Beispiel waren durchschnittlich 6.45 Verbindungen erforderlich
eine Sitzung abschließen.

Die Zeile mit der Bezeichnung „Sitzungslebensdauer“ gibt die durchschnittliche Zeit an, die zum Abschluss einer Sitzung benötigt wurde
erfolgreiche Sitzung. Im obigen Beispiel dauerte es durchschnittlich 123.9 Sekunden.

Die Zeile mit der Bezeichnung „Sitzungsfehlerzeit“ gibt die durchschnittliche Zeit an, die bis zum Auftreten eines Sitzungsfehlers verging
erfolglose Sitzung fehlgeschlagen. Im obigen Beispiel dauerte es durchschnittlich 58.5 Sekunden für a
Sitzung fehlschlägt.

Schließlich gibt die Zeile mit der Bezeichnung „Histogramm der Sitzungslänge“ ein Histogramm der Anzahl an
Antworten, die in jeder Sitzung eingegangen sind. Im obigen Beispiel endeten 4 Sitzungen nach dem Empfang
überhaupt keine Antwort, 7 endete, nachdem eine Antwort erhalten wurde, und so weiter (die Auslassungspunkte zeigen an).
zusätzliche Histogrammzählungen, die aus Platzgründen in diesem Handbuch weggelassen wurden). Notiz
dass dieses Histogramm nicht zwischen erfolgreichen und fehlgeschlagenen Sitzungen unterscheidet.

AUSWAHL TIMEOUT WERTE


Da die Maschine das httperf Läuft auf nur eine begrenzte Menge an Ressourcen zur Verfügung hat, kann es
nicht beliebig hohen HTTP-Lasten standhalten. Ein limitierender Faktor ist beispielsweise, dass dort
Es gibt nur etwa 60,000 TCP-Portnummern, die zu einem bestimmten Zeitpunkt verwendet werden können. Seit am
Bei den meisten UNIX-Systemen dauert es eine Minute, bis eine TCP-Verbindung vollständig geschlossen ist (lassen Sie die
TIME_WAIT-Zustand) beträgt die maximale Rate, die ein Client aufrechterhalten kann, höchstens 1,000 Anfragen pro
zweite.

Die tatsächliche nachhaltige Rate ist oft viel niedriger als die, bevor sie zur Neige geht
Bei Verwendung von TCP-Ports ist es wahrscheinlich, dass der Maschine die Dateideskriptoren ausgehen (ein Dateideskriptor ist vorhanden).
pro geöffneter TCP-Verbindung verbraucht). Standardmäßig lässt HP-UX 10.20 1,024 geöffnete Dateien zu
Deskriptoren pro Prozess. Dies bedeutet, dass ohne zusätzliche Vorsichtsmaßnahmen httperf könnte
potenziell sehr schnell alle verfügbaren Dateideskriptoren verbrauchen, und zwar zu diesem Zeitpunkt
keine zusätzliche Belastung des Servers verursachen. Um dieses Problem zu vermeiden, httperf bietet
zu erhalten --Auszeit um ein Timeout für die gesamte Kommunikation mit dem Server festzulegen. Wenn der Server
Reagiert der Client nicht vor Ablauf des Timeouts, berücksichtigt er das entsprechende
Sitzung, Verbindung oder Aufruf werden „tot“, schließt die zugehörige TCP-Verbindung und
erhöht die Fehleranzahl „client-timo“. Die einzige Ausnahme von dieser Regel ist die folgende
Senden einer gesamten Anfrage an den Server, httperf ermöglicht es dem Server, etwas mehr zu nehmen
Zeit, bevor mit dem Senden der Antwort begonnen wird. Dies dient dazu, HTTP-Anfragen zu berücksichtigen, die eine Weile dauern
Es dauert lange, bis der Vorgang auf dem Server abgeschlossen ist. Diese zusätzliche Zeit wird als „Serverdenken“ bezeichnet
Zeit'' und kann per Option angegeben werden --think-timeout. Standardmäßig ist dieser Zusatz gedacht
Die Zeit beträgt null Sekunden, sodass der Server immer innerhalb der vorgegebenen Zeit antworten muss
per Option --Auszeit.

Timeouts erlauben httperf hohe angebotene Lasten auch bei Serverüberlastung aufrecht zu erhalten.
Zum Beispiel mit einem Timeout von 2 Sekunden und der Annahme, dass 1,000 Dateideskriptoren vorhanden sind
verfügbar, könnte die angebotene Last bis zu 500 Anfragen pro Sekunde betragen (in der Praxis beträgt die
Die nachhaltige Belastung ist oft etwas kleiner als der theoretische Wert). Auf der Unterseite,
Zeitüberschreitungen beschneiden künstlich die Verteilung der Verbindungslebensdauer. So ist es
Es wird empfohlen, einen Timeout-Wert zu wählen, der so groß wie möglich, aber klein genug ist, um dies zu ermöglichen
Aufrechterhaltung des gewünschten Angebotspreises. Eine Zeitüberschreitung von nur einer Sekunde kann akzeptabel sein.
aber größere Zeitüberschreitungen (5–10 Sekunden) sind vorzuziehen.

Es ist wichtig zu bedenken, dass Zeitüberschreitungen keine Garantie dafür sind, dass ein Client a aufrechterhalten kann
bestimmte angebotene Last – es gibt viele andere potenzielle Ressourcenengpässe. Für
Beispielsweise kann es in manchen Fällen dazu kommen, dass der Client-Rechner einfach keine CPU-Zeit mehr hat. Um sicherzustellen, dass
Bei einem bestimmten Test wurden wirklich die Fähigkeiten des Servers und nicht die des Clients gemessen. Das ist gut
Idee, die Anzahl der an einem Test teilnehmenden Maschinen zu variieren. Bei beobachteter Leistung
Da die Anzahl der Client-Rechner unterschiedlich bleibt, sind die Testergebnisse wahrscheinlich
gültig sein.

Verwenden Sie httperf online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    Zabbix
    Zabbix
    Zabbix ist ein Open der Enterprise-Klasse
    Quellverteilte Überwachungslösung
    entworfen, um zu überwachen und zu verfolgen
    Leistung und Verfügbarkeit des Netzwerks
    Server, Gerät...
    Zabbix herunterladen
  • 2
    KDiff3
    KDiff3
    Dieses Repository wird nicht mehr gepflegt
    und wird zu Archivierungszwecken aufbewahrt. Sehen
    https://invent.kde.org/sdk/kdiff3 for
    der neueste Code und
    https://download.kde.o...
    Laden Sie KDiff3 herunter
  • 3
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX ist eine GUI für
    Waninkokos USB Loader, basierend auf
    libwiigui. Es ermöglicht die Auflistung und
    Starten von Wii-Spielen, Gamecube-Spielen und
    Homebrew auf Wii und WiiU...
    Laden Sie USBLoaderGX herunter
  • 4
    Firebird
    Firebird
    Firebird RDBMS bietet ANSI-SQL-Funktionen
    & läuft auf Linux, Windows &
    mehrere Unix-Plattformen. Merkmale
    hervorragende Parallelität und Leistung
    & Energie...
    Firebird herunterladen
  • 5
    Kompozer
    Kompozer
    KompoZer ist ein wysiwyg HTML-Editor, der verwendet
    die Mozilla Composer-Codebasis. Als
    Die Entwicklung von Nvu wurde gestoppt
    2005 behebt KompoZer viele Fehler und
    fügt ein f hinzu ...
    Laden Sie KompoZer herunter
  • 6
    Kostenlose Manga Downloader
    Kostenlose Manga Downloader
    Der Free Manga Downloader (FMD) ist ein
    Open-Source-Anwendung geschrieben
    Object-Pascal zum Verwalten und
    Herunterladen von Mangas von verschiedenen Websites.
    Das ist ein Spiegel...
    Laden Sie den kostenlosen Manga-Downloader herunter
  • Mehr »

Linux-Befehle

Ad