2016-11-08 3 views
0

Я использую jmeter HTTP Sampler для проверки последовательности HTTP-запросов и выбора «Use KeepAlive». Но несколько потоков Jmeter закрыли соединение с TCP FIN до того, как все отправили запросы. enter image description hereJmeter close connection before my test finish

Как показано на рисунке, 172.19.0.101 является Jmeter, 172.19.0.111 является сервером. Остальные запросы могут быть отправлены только в новое соединение, и они не работают.

+0

дайте нам знать, сервер, который вы используете, и какие значения, заданные для Keep-Alive тайма-аута, ConnectionTimeOut и максимального числа запросов, которые могут быть направлены на постоянное соединении –

+0

Цените для порции. Я проверил конфигурацию, ни тайм-аут, ни параметр «max». И Jteter клиент отключает инициативу, а не сервер Apache. Поэтому я думал, что это может быть проблемой на Jmeter или клиентской машине. – Monochrome

ответ

0

Это может быть по двум причинам:.

Первая причина - тайм-аут

ли достигается таймаут (значение по умолчанию составляет 60 секунд, и настраивается Если не задан, он использует параметр ConnectionTimeOut значение на сервере tomcat).

тайм-аут соединения по умолчанию Apache HTTPD 1.3 и 2.0, как мало, как 15 секунд и всего 5 секунд для Apache HTTPD 2.2 и выше

я наблюдал, что запрос получил ответ после 10 секунд (15 -> 29 секунд) перед отправкой сигнала FIN для прекращения соединения.

Ссылка:

  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

Второй причина - параметр 'Макса

Может быть, это достигло количества reques ts, которые могут быть отправлены на одном постоянном соединении.

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

Set Реализация в HTTP Пробоотборники для HTTPClient4 и попробовать.

Из документации JMeter HTTP Sampler.

JMeter устанавливает соединение: сохранить заголовок. Это неправильно работает с реализацией HTTP по умолчанию, поскольку повторное использование соединения не находится под контролем пользователя. Он работает с реализациями Apache HttpComponents HttpClient.

+1

проверить значение, настроенное для таймаута keepalive «# httpclient4.idletimeout = 0» в файле JMeter.properties. также connectionTimeout значение "# httpclient.timeout = 0". отредактировал ответ –

+1

Спасибо за помощь.Параметр кажется полезным, некоторые соединения могут сохраняться. Но не все соединения в порядке, клиент Jmeter по-прежнему отключает инициативу до завершения тестирования. Я постараюсь получить больше информации. – Monochrome

+0

сосредоточиться на заголовках «Keep-Alive» на сервере и на стороне клиента и проанализировать, какие из них согласованы, чтобы поддерживать постоянное соединение. –