Тестирование пула соединений Cloudant с JMeter - PullRequest
0 голосов
/ 05 сентября 2018

Я создал два приложения (одно с Java и одно с NodeJS), подключающихся к экземпляру Bluemix Cloudant, и я пытаюсь проверить настройки пула подключений.

В Java я использую библиотеку java-cloudant как с зависимостью OkHttp, так и без нее. Я полагаю, что использование пула соединений по умолчанию дает максимальное соединение 5. При использовании OkHttp я устанавливаю максимальные соединения 1, 5, 200 и 1000. Тестируя с 200, 500, 1000 потоков в JMeter, я получаю то же самое результаты между использованием пула соединений по умолчанию и использованием OkHttp с различными настройками максимального соединения.

В NodeJS я использую библиотеку nodejs-cloudant, и результаты аналогичны Java.

Я ожидаю, что мои тесты будут намного быстрее с большим количеством максимальных соединений для пула соединений, но, похоже, это не повлияет на мои тесты. Кто-нибудь знает, что происходит?

1 Ответ

0 голосов
/ 05 сентября 2018

Ваше предположение верно, если пул соединений меньше, чем количество входящих запросов, запросы будут поставлены в очередь, а производительность будет ниже. Однако я могу видеть как минимум 2 сценария, когда это не будет иметь место:

  1. Вы на самом деле не имитируете потоки 200, 500 и т. Д. В JMeter. В зависимости от вашей конфигурации вы можете столкнуться с ситуацией, когда некоторые потоки уже закончили свою работу, а некоторые еще даже не были запущены. Дважды проверьте, сколько потоков у вас действительно есть, т.е. активных потоков с течением времени прослушиватель или эквивалентная диаграмма HTML Reporting Dashboard . Посмотрите результаты теста JMeter: Почему фактическое число пользователей меньше ожидаемого для подробного объяснения распространенной ошибки.
  2. Ваше приложение не способно обработать такое количество запросов, поскольку вы достигли узкого места вашей системы, поэтому до определенного числа потоков пропускная способность увеличивается при увеличении количества виртуальных пользователей, а затем есть точка максимальной производительности, называемая точка насыщения , тогда пропускная способность остается той же или даже уменьшается. Поэтому проверьте, достаточно ли в ваших приложениях запаса для работы с точки зрения ресурсов (ОЗУ, ЦП, сеть, диск) - вы можете использовать JMeter PerfMon Plugin для этого или использовать инструменты профилирования чтобы определить, где ваше приложение тратит время.
...