Проведение нагрузочного тестирования
В YDB интегрирован инструментарий для проведения нагрузочных тестов с использованием стандартных бенчмарков:
| Бенчмарк | Справка |
|---|---|
| TPC-C | tpcc |
| TPC-H | tpch |
| TPC-DS | tpcds |
| ClickBench | clickbench |
Помимо стандартных бенчмарков есть еще несколько внутренних:
| Бенчмарк | Справка |
|---|---|
Key Value |
kv |
Stock |
stock |
Topic |
topic |
Transfer |
topic |
Также предусмотрена возможность запуска пользовательских сценариев тестирования, которые инициируются посредством команды ydb workload query, см. описание. Подробности приведены в соответствующем разделе.
Все указанные методы эмулируют пользовательскую нагрузку на базу данных в рамках заданных сценариев. Детальное описание каждого метода представлено в соответствующих разделах, ссылки на которые приведены выше.
Все команды для работы с бенчмарками сгруппированы в соответствующие категории:
ydb workload tpcc --path path/in/database ...
ydb workload clickbench --path path/in/database ...
ydb workload tpch --path path/in/database ...
ydb workload tpcds --path path/in/database ...
ydb workload query --path path/in/database ...
ydb workload kv --path path/in/database ...
ydb workload stock --path path/in/database ...
ydb workload topic ...
ydb workload transfer ...
Нагрузочное тестирование состоит из трёх этапов:
Подготовка данных
Состоит из двух этапов, это инициализация таблиц и наполнение их данными.
Инициализация
Инициализация производится командой init:
ydb workload tpcc --path tpcc/10wh 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
ydb workload query --path user/suite1 init --suite-path /home/user/user_suite
ydb workload kv --path kv init --store=column
ydb workload stock --path stock init --store=row
ydb workload topic init --topic some_topic
ydb workload transfer topic-to-table init --topic some_topic --table /db/table
На этапе создания таблиц, если вы запускаете tpch, tpcds или clickbench, возможно дополнительно настроить создаваемые таблицы:
- Выбрать тип используемых таблиц: строковые, колоночные, внешние и тд. (параметр
--store); - Выбрать типы используемых колонок: строк (параметр
--string), дат и времени (--datetime) и тип вещественных чисел (--float-mode).
Также можно указать, что перед созданием таблицы должны быть удалены, если они уже созданы (параметр --clear).
Подробнее см. описание команд для каждого бенчмарка:
- tpcc init
- clickbench init
- tpch init
- tpcds init
- query init
- kv init
- stock init
- topic init
- transfer init
Наполнение данными
Наполнение созданных таблиц данными выполняется с помощью команды import. Эта команда специфична для каждого бенчмарка, и её поведение зависит от дополнительных опций.
Подробное описание см. в соответствующих разделах:
Примеры:
ydb workload tpcc --path tpcc/10wh 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
ydb workload query --path user/suite1 import --suite-path /home/user/user_suite
Тестирование
Непосредственный запуск нагрузочного тестирования выполняется командой run. Её поведение практически одинаково для разных бенчмарков, хотя некоторые различия всё-таки присутствуют.
Примеры:
ydb workload tpcc --path tpcc/10wh 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
ydb workload query --path user/suite1 run --plan ~/query_plan --include first_query_set.1.sql,second_query_set.2.sql --iterations 5
ydb workload kv --path kv run mixed
ydb workload stock --path stock run add-rand-order
ydb workload topic run full --topic some_topic
ydb workload transfer topic-to-table run --topic some_topic --table /db/table
Команда run для каждого из бенчмарков имеет ряд дополнительных параметров для настройки видов генерируемых отчётов, сбора статистики и прочих результатов нагрузочного тестирования.
Подробное описание см. в соответствующих разделах:
Очистка
При завершении работ по нагрузочному тестированию тестовые данные и таблицы можно удалить командой clean:
ydb workload tpcc --path tpcc/10wh clean
ydb workload clickbench --path clickbench/hits clean
ydb workload tpch --path tpch/s1 clean
ydb workload tpcds --path tpcds/s1 clean
ydb workload query --path user/suite1 clean
ydb workload kv --path kv clean
ydb workload stock --path stock clean
ydb workload topic clean --topic some_topic
ydb workload transfer topic-to-table clean --topic some_topic --table /db/table
Подробное описание см. в соответствующих разделах: