2016-11-08 7 views
0

Ich benutze jmeter HTTP Sampler, um eine Sequenz von HTTP-Anfragen zu testen und wählte "Use KeepAlive". Aber ein paar Threads Jmeter Verbindung mit TCP FIN geschlossen, bevor alle Anfragen senden. enter image description hereJmeter enge Verbindung vor meinem Testende

Wie das Bild gezeigt, ist 172.19.0.101 Jmeter, 172.19.0.111 ist der Server. Der Rest von Anfragen kann nur in einer neuen Verbindung gesendet werden und sie sind außerhalb der Sitzung.

+0

lassen Sie uns den Server kennen, die Sie verwenden, und was sind die für Keep-Alive-Timeout eingestellten Werte, und maximale Anzahl connection der Anfragen, die über eine persistente Verbindung gesendet werden können –

+0

für Ihre helfende schätzen. Ich habe die Konfiguration überprüft, weder Timeout noch 'Max' Parameter gesetzt. Und die Jmeter-Client-Disconnect-Initiative, nicht der Apache-Server. Also ich dachte, möglicherweise Problem auf Jmeter oder Client-Maschine. – Monochrome

Antwort

0

Es kann aus zwei Gründen:.

Der erste Grund - Timeout

ob Timeout erreicht ist (Standardwert ist 60 Sekunden und konfigurierbar Wenn nicht konfiguriert ist, verwendet er den connection Parameter Wert im Tomcat-Server).

die Standardverbindung Timeout von Apache 1.3 und 2.0 als kleiner ist als 15 Sekunden und 5 Sekunden für die Apache 2.2 httpd und oben

I, dass die Anfrage nach 10 die Antwort erhielt beobachtet Sekunden (15 -> 29 Sekunden) vor dem Senden des FIN-Signals, um die Verbindung zu beenden.

Referenzen:

  1. https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-timeout
  2. https://en.wikipedia.org/wiki/HTTP_persistent_connection
  3. https://tomcat.apache.org/tomcat-7.0-doc/config/http.html

Zweiter Grund - 'max' Parameter

Kann es sein, die Anzahl der reques erreicht ts, die in einer einzigen persistenten Verbindung gesendet werden können.

  1. https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#p-max

Set Implementierung in HTTP-Samplers zu HTTPClient4 und versuchen.

Von JMeter HTTP Sampler Dokumentation.

JMeter setzt die Verbindung: Keep-Alive-Header. Dies funktioniert nicht ordnungsgemäß mit der Standard-HTTP-Implementierung, da die Wiederverwendung von Verbindungen nicht unter Benutzerkontrolle erfolgt. Es funktioniert mit den Apache HttpComponents HttpClient-Implementierungen.

+1

Überprüfen Sie den für das Keepalive-Timeout konfigurierten Wert "# httpclient4.idletimeout = 0" in der Datei JMeter.properties. auch connectionTimeout Wert "# httpclient.timeout = 0". bearbeitet die Antwort –

+1

Danke für Ihre Hilfe.Der Parameter scheint nützlich zu sein, einige Verbindungen können beibehalten werden. Aber nicht alle Verbindungen sind in Ordnung, der Jmeter-Client trennt die Initiative noch gelegentlich, bevor der Test beendet ist. Ich werde versuchen, mehr Informationen zu bekommen. – Monochrome

+0

Fokus auf Server und Client-Seite "Keep-Alive" Header und analysieren, was beide vereinbart sind, um die dauerhafte Verbindung zu halten. –

Verwandte Themen