Проведение нагрузочного тестирования

В YDB встроен инструментарий для проведения нагрузочного тестирования несколькими стандартными бенчмарками:

Бенчмаркам Справка
TPC-H tpch
TPC-DS tpcds
ClickBench clickbench

Работают сходным образом, детальное описание для каждого см. в соответствующих разделах, ссылки выше.
Все команды для работы с бенчмарками собраны в соответствующие группы, при этом для всех команд единым образом задается путь в БД:

ydb workload clickbench --path path/in/database ...
ydb workload tpch --path path/in/database ...
ydb workload tpcds --path path/in/database ...

Нагрузочное тестирование можно разбить на 3 этапа:

  1. Подготовка данных
  2. Тестирование
  3. Очистка

Подготовка данных

Состоит из двух этапов, это инициализация таблиц и наполнение их данными.

Инициализация

Инициализация производится командой init:

ydb workload clickbench --path clickbench/hits init --store=row
ydb workload tpch --path tpch/s1 init --store=column
ydb workload tpcds --path tpcds/s1 init --store=external-s3

На данном этапе можно настроить создаваемые таблицы:

  • Выбрать тип используемых таблиц: строковые, колоночные, внешние и тд. (параметр --store);
  • Выбрать типы используемых колонок: строк (параметр --string), дат и времени (--datetime) и тип вещественных чисел (--float-mode).

Также можно указать, что перед созданием таблицы должны быть удалены, если они уже созданы. Параметра --clear

Подробнее см. описание команд для каждого бенчмарка:

Наполнение данными

Наполнение данными выполняется при помощи команды import. Данная команда специфична для каждого бенчмарка и её поведение зависит от подкоманд. При этом есть и общие для всех параметры.

Подробное описание см. в соответствующих разделах:

Примеры:

ydb workload clickbench --path clickbench/hits import files --input hits.csv.gz
ydb workload tpch --path tpch/s1 import generator --scale 1
ydb workload tpcds --path tpcds/s1 import generator --scale 1

Тестирование

Непосредственно тестирование выполняется командой run. Её поведение практически одинаково для разных бенчмарков, хотя некоторые различия всё-таки присутствуют.

Примеры:

ydb workload clickbench --path clickbench/hits run --include 1-5,8
ydb workload tpch --path tpch/s1 run --exсlude 3,4 --iterations 3
ydb workload tpcds --path tpcds/s1 run --plan ~/query_plan --include 2 --iterations 5

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

Подробное описание см. в соответствующих разделах:

Очистка

После выполнения всего необходимого тестирования данные могут быть удалены из БД.
Сделано это может быть при помощи команды clean:

ydb workload clickbench --path clickbench/hits clean
ydb workload tpch --path tpch/s1 clean
ydb workload tpcds --path tpcds/s1 clean

Подробное описание см. в соответствующих разделах:

Следующая