Выполнить предварительное утверждение в запросе Jmeter JDBC - PullRequest
0 голосов
/ 17 октября 2018

Я создаю тест производительности JDBC с использованием JMeter для оценки производительности набора запросов в кластере RedShift.

В RedShift кэширование ResultSet включено по умолчанию и может быть отключено в отдельных сеансах с помощьюиспользуя оператор

SET enable_result_cache_for_session=false;

Как задокументировано здесь .

Я не могу найти способ запустить этот оператор в JMeter перед выполнением моих запросов.Если я вставлю его до фактического запроса JDBC, JMeter пожалуется на ожидание ровно одного запроса.

Если я создаю в своей группе потоков «Контроллер однократной загрузки», который выполняется перед выполнением запросов (которые находятся в контроллере случайного порядка в той же группе потоков), его выполнение, по-видимому, не влияет на кэширование.:

Время запроса варьируется от 30 секунд для первого запуска до 250 мс для последующих.

То же самое происходит, если я пытаюсь настроить препроцессор JDBC для каждого отдельного запроса.

Есть ли способ выполнить этот предварительный запрос, используя jmeter?В качестве альтернативы, есть ли способ глобально отключить кэширование в кластере Redshift?

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Это необходимо сделать только один раз для каждого кластера, а не для каждого запроса, поэтому, если вы установите enable_result_cache_for_session на false с помощью, например, Редактор запросов , его следует применять до тех пор, пока вы не установите его обратно на * 1005.*

Если вам нужно сделать это с JMeter, я могу думать только о подключении к экземпляру RedShift через SSH

RedShift SSH

Вы можете сделатьэто с помощью JMeter SSH Command Sampler (вам нужно будет установить его с помощью JMeter Plugins Manager ) и установить параметр с помощью соответствующей команды SSH.

0 голосов
/ 07 апреля 2019

Я столкнулся с той же проблемой.Вот как вы можете настроить запуск запроса «отключить кеш»:

  1. В окне «План тестирования» - проверьте «Запускать группы потоков последовательно»
  2. создать 2 группы потоков
  3. в группе потоков 1 - добавить запрос JDBC "отключить enable_result_cache_for_session;"тип запроса (ВАЖНО) - Оператор обновления (другие не работают для меня)
  4. в группе потоков 2 - поместить все остальные запросы JDBC

Настройки TestPlan: enter image description here Кэширование от jdbc-запроса: enter image description here

0 голосов
/ 17 октября 2018

Вы можете изменить этот параметр, используя группы параметров:

https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html

В JMeter <= 5.0 он не работает, так как новое соединение извлекается из пуладля каждого запроса, поэтому параметр неактивен. </p>

Я открыл запрос на расширение для этого, и мы предоставили исправление, которое теперь находится в ночной сборке JMeter и должно быть доступно в версии 5.1:

Попробуйте построить здесь ночью:

РЕДАКТИРОВАТЬ 21 февраля 2019:

JMeter 5.1 был выпущен с этой функцией.

Вы настраиваете его на Конфигурация соединения JDBC :

enter image description here

...