JMeter выдает сообщение об ошибке «Целевой сервер не отвечает» - PullRequest
0 голосов
/ 04 февраля 2019

Мы используем Jmeter для тестирования производительности.Я дал 200 потоков (200 пользователей).и у нас есть два сервера.как сервер A, сервер B. Я тестировал неделимо для 200 пользователей, это работает.и мы загружаем балансировочный сервер, такой как сервер C. Таким образом, запрос отправляется на эфирный сервер A или сервер B. Но если сконфигурировать мой тот же сценарий jmx (200 потоков) с сервером C. Это выдает ошибку ниже (но она работает для 50 пользователей - без ошибок).

org.apache.http.NoHttpResponseException: The target server failed to respond
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:95)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191)
    at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.receiveResponseHeader(MeasuringConnectionManager.java:201)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)

1 Ответ

0 голосов
/ 05 февраля 2019

Если проблему можно воспроизвести только при более высоких нагрузках - это определенно проблема с сервером (или балансировщиком нагрузки), поэтому поздравляем с обнаружением первого узкого места .

Теперь вы можете исследовать причину и предложить исправления, следующие шаги могут быть:

  1. Проверка приложения в журналах тестирования / балансировки нагрузки - вы можете найти подсказку там
  2. Проверка тестируемого приложения / балансировщика нагрузки / базы данных / любой другой конфигурации промежуточного программного обеспечения.в большинстве случаев конфигурация по умолчанию хороша для разработки и отладки, но вам нужно будет выполнить некоторую настройку производительности перед выполнением нагрузочного теста типа «прога»
  3. Собирать основные показатели работоспособности в приложении в разделетестовая сторона (ЦП, ОЗУ, сеть, диск, использование свопа и т. д.).Возможно, вашему приложению просто не хватает аппаратных ресурсов.Вы можете использовать встроенные инструменты операционной системы (систем) или APM или JMeter PerfMon Plugin
  4. Перезапустить тест с инструмент профилирования телеметрия включена на тестируемой стороне приложения.Это даст вам общее представление о том, где приложение тратит больше всего времени, какие наиболее «тяжелые» функции или функции вызываются чаще всего, чтобы вы знали, что оптимизировать.
  5. Убедитесь, что балансировщик нагрузки в равной степени (или в соответствии с другим алгоритмом ) распределяет запросы между внутренними серверами.Это может быть случай, когда вы подключаетесь только к одному серверу, если это так - рассмотрите возможность добавления DNS Cache Manager в ваш план тестирования и повторите тест, чтобы увидеть, помогает ли это.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...