В этом документе описаны подробные параметры MatrixBench.
Примечание!
mxbench теперь является проектом с открытым исходным кодом. Просмотр кода и вклад приветствуются. Перейдите по этой ссылке, чтобы прочитать файл README.
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
| Категория [Database] | ||
| --db-database | postgres | Имя базы данных. Если база не существует, MatrixBench создаст её автоматически; ошибка не возникает, если база уже существует |
| --db-master-host | localhost | Имя хоста экземпляра YMatrix Master |
| --db-master-port | 5432 | Номер порта экземпляра YMatrix Master |
| --db-password | Пароль пользователя YMatrix | |
| --db-user | mxadmin | Имя пользователя YMatrix |
| Категория [Global] | ||
| --workspace | /tmp/mxbench | Каталог для CSV-файлов данных и файлов запросов. В каталоге workspace mxbench создаёт подкаталог с именем, соответствующим временной метке UNIX на момент запуска mxbench. Скрипты DDL, скрипты GUC и файлы запросов генерируются в этом подкаталоге. Если --dump установлено в true, здесь также создаются экспортированные CSV-файлы данных |
| --dump | false | Экспорт CSV-файлов данных. Если установлено в true, выполняется только экспорт данных без загрузки и выполнения запросов |
| --watch | true | Включить мониторинг процесса. По умолчанию включено. Информация о ходе выполнения из модулей Writer и Benchmark выводится каждые 5 секунд |
| --log-level | info | Уровень логирования. Поддерживаемые значения: debug / verbose / info / error |
| --skip-set-gucs | false | Пропустить запрос и установку параметров. По умолчанию mxbench запрашивает, нужно ли сбросить и перезапустить базу данных, и выбирает подходящие параметры на основе характеристик данных, определённых в конфигурации |
| --simultaneous-loading-and-query | false | Выполнять загрузку данных и выполнение запросов одновременно. По умолчанию сначала загружаются данные, затем выполняются запросы. Если установлено в true, выполняется смешанная нагрузка (загрузка и запросы). В режиме смешанной нагрузки запросы выполняются циклически до завершения загрузки данных |
| --ddl-file-path | Путь к пользовательскому DDL-файлу. По умолчанию DDL генерируется автоматически на основе других конфигураций | |
| --metrics-type | float8 | Тип данных для метрик. Поддерживаемые типы: int4 / int8 / float4 / float8 |
| --metrics-descriptions | Описания метрик. Должны следовать синтаксису, описанному в разделе «Несколько типов данных и характеристик» документации Основные возможности, чтобы генерировать данные с заданными характеристиками | |
| --partition-interval-in-hour | 24 | Интервал времени (в часах) для партиционирования таблиц в сгенерированном DDL. По умолчанию 24 (один день). Установите значение 0, чтобы mxbench выбрал интервал случайным образом |
| --realtime | false | Режим реального времени. Если установлено в true, временные метки в сгенерированных данных основаны на текущем времени выполнения. Каждые --ts-step-in-second секунд генерируется --tag-num строк. Для создания партиций таблиц используются --ts-start и --ts-end |
| --report-format | csv | Формат отчёта со статистикой выполнения SQL. Поддерживается только CSV |
| --report-path | /tmp | Путь для вывода отчётов со статистикой выполнения SQL |
| --schema-name | public | Имя схемы |
| --table-name | Имя таблицы. По умолчанию "", должно быть задано вручную | |
| --tag-num | 25000 | Количество устройств |
| --total-metrics-count | 300 | Общее количество метрик. Если больше 998, дополнительные метрики сохраняются как JSON в столбце с именем "ext" |
| --ts-start | Начальная временная метка для генерируемых данных. Из-за задержек при отправке некоторые данные могут иметь метки времени раньше этого значения | |
| --ts-end | Конечная временная метка для генерируемых данных. --ts-end должна быть позже --ts-start; в противном случае возникнет ошибка |
|
| --ts-step-in-second | 1 | Интервал (в секундах) между выборками метрик |
| Категория [Generator] | ||
| --generator | telematics | Генератор данных. По умолчанию — telematics (телеметрия транспортных средств). Поддерживаемые: telematics / file / nil. file читает данные из CSV-файлов; nil не генерирует данные |
| generator = "telematics" | ||
| --generator-batch-size | 1 | Количество строк на устройство на временную метку, отправляемое в YMatrix. Например, если установлено значение 5, данные для устройства tag1 во временную метку 2022-04-25 09:00:03 разделяются на 5 строк и объединяются в один кортеж. По умолчанию 1 (разделение отсутствует) |
| --generator-disorder-ratio | 0 | Доля данных с нарушенным порядком (с задержкой). Диапазон: 0~100. По умолчанию: 0 (нет задержанных данных) |
| --generator-empty-value-ratio | 90 | Процент значений NULL в каждой строке. Диапазон: 0–100. По умолчанию: 90% |
| --generator-randomness | OFF | Уровень случайности данных. Поддерживаемые значения: OFF / S / M / L |
| --generator-num-goroutine | 1 | Количество параллельных goroutines для генерации данных |
| --generator-write-batch-size | 4 | Размер буфера для сгенерированных данных (в МБ) |
| generator = "file" | ||
| --generator-file-paths | Абсолютные пути к CSV-файлам данных. Можно указать несколько файлов в виде массива | |
| --generator-batch-size | 1 | То же, что параметр generator = "telematics"'s --generator-batch-size (необязательно; недействительно при использовании пользовательского DDL) |
| --generator-empty-value-ratio | 90 | То же, что параметр generator = "telematics"'s --generator-empty-value-ratio (необязательно; недействительно при использовании пользовательского DDL) |
| generator = "nil" (дополнительных параметров нет) | ||
| Категория [Writer] | ||
| --writer | Метод запуска mxgate и записи данных. Поддерживаемые: http / stdin / nil |
|
| writer = "http" | ||
| --writer-use-gzip | false | Сжимать ли HTTP-сообщения с помощью Gzip |
| --writer-parallel | 8 | Уровень параллелизма при отправке данных в mxgate |
| --writer-mxgate-path | Путь переменной окружения | Путь к исполняемому файлу mxgate. По умолчанию используется путь из переменной окружения |
| --writer-progress-format | list | Формат вывода прогресса Writer. Поддерживаемые: list / json |
| --writer-progress-include-table-size | false | Включать ли размер таблицы в прогресс Writer |
| --writer-progress-with-timezone | false | Включать ли информацию о часовом поясе в прогресс Writer |
| --writer-interval | -1 | Устанавливает параметр mxgate --interval. По умолчанию -1 (выбирается автоматически mxbench; расширенный параметр отладки) |
| --writer-stream-prepared | -1 | Устанавливает параметр mxgate --stream-prepared. По умолчанию -1 (выбирается автоматически mxbench; расширенный параметр отладки) |
| writer = "stdin" | ||
| --writer-mxgate-path | Путь переменной окружения | То же, что параметр writer = "http"'s --writer-mxgate-path |
| --writer-progress-format | list | То же, что параметр writer = "http"'s --writer-progress-format |
| --writer-progress-include-table-size | false | То же, что параметр writer = "http"'s --writer-progress-include-table-size |
| --writer-progress-with-timezone | false | То же, что параметр writer = "http"'s --writer-progress-with-timezone |
| --writer-interval | -1 | То же, что параметр writer = "http"'s --writer-interval |
| --writer-stream-prepared | -1 | То же, что параметр writer = "http"'s --writer-stream-prepared |
| writer = "nil" (дополнительных параметров нет) | ||
| Категория [Benchmark] | ||
| --benchmark | telematics | Генератор и исполнитель запросов. Поддерживаемые: telematics / nil |
| benchmark = "telematics" | ||
| --benchmark-run-query-names | Список имён телематических запросов для последовательного выполнения. Поддерживаемые запросы: 1. SINGLE_TAG_LATEST_QUERY: Получить последние метрики для одного транспортного средства;2. MULTI_TAG_LATEST_QUERY: Случайно выбрать 10 транспортных средств и получить их последние метрики;3. SINGLE_TAG_DETAIL_QUERY: Получить метрики для одного транспортного средства за временной диапазон;Пример: [ "SINGLE_TAG_LATEST_QUERY", "MULTI_TAG_LATEST_QUERY", "SINGLE_TAG_DETAIL_QUERY" ] выполняет все три запроса последовательно. Остальные имена игнорируются. По умолчанию пусто (запросы не выполняются) |
|
| --benchmark-custom-queries | Пользовательские запросы, разделённые запятыми. Пример: ["SELECT COUNT(*) from t1", "SELECT MAX(ts) from t1"]. По умолчанию пусто (нет пользовательских запросов) |
|
| --benchmark-combination-queries | Выражение для составных запросов. Должно следовать синтаксису, описанному в разделе «Составные запросы» документации Основные возможности | |
| --benchmark-progress-format | list | Формат вывода прогресса Benchmark. Поддерживаемые: list / json |
| --benchmark-parallel | Параллелизм выполнения запросов. Можно указать несколько уровней, разделённых запятыми. Пример: [1, 8] выполняет запросы сначала с параллелизмом 1, затем с 8. По умолчанию пусто |
|
| --benchmark-run-times | 0 | Количество выполнений каждого запроса на каждом уровне параллелизма. Mxbench использует несколько запусков для расчёта статистики задержки и TPS |
| --benchmark-runtime-in-second | 60 | Продолжительность (в секундах) выполнения каждого запроса на каждом уровне параллелизма. Используется для статистики задержки и TPS. Этот параметр действует только при --benchmark-run-times = 0 |
| benchmark = "nil" |
| Опция командной строки | Описание |
|---|---|
| --run | Запустить mxbench из командной строки |
| --config | Вывести полный шаблон файла конфигурации |
| --help | Показать справку и список параметров |
| --version | Показать версию |
Примечание!
Для основных возможностей см. Основные возможности MatrixBench.
Для подробностей о сообщениях хода выполнения и статистических отчётах см. MatrixBench: понимание информации о ходе выполнения и отчётах.