clickhouse-benchmark
Подключается к серверу ClickHouse и многократно отправляет заданные запросы.
Синтаксис
или
или
Если вы хотите отправить набор запросов, создайте текстовый файл и поместите каждый запрос на отдельной строке в этом файле. Например:
Затем передайте этот файл в стандартный ввод clickhouse-benchmark
:
Параметры командной строки
--query=QUERY
— Запрос для выполнения. Если этот параметр не передан,clickhouse-benchmark
будет читать запросы из стандартного ввода.--query_id=ID
— Идентификатор запроса.--query_id_prefix=ID_PREFIX
— Префикс идентификатора запроса.-c N
,--concurrency=N
— Количество запросов, которыеclickhouse-benchmark
отправляет одновременно. Значение по умолчанию: 1.-C N
,--max_concurrency=N
— Постепенно увеличивает количество параллельных запросов до указанного значения, создавая отчет для каждого уровня параллелизма.--precise
— Включает точное отчетность по интервалам с взвешенными метриками.-d N
,--delay=N
— Интервал в секундах между промежуточными отчетами (для отключения отчетов установите 0). Значение по умолчанию: 1.-h HOST
,--host=HOST
— Хост сервера. Значение по умолчанию:localhost
. Для режима сравнения вы можете использовать несколько ключей-h
.-i N
,--iterations=N
— Общее количество запросов. Значение по умолчанию: 0 (бесконечно).-r
,--randomize
— Случайный порядок выполнения запросов, если есть более одного входного запроса.-s
,--secure
— Использование подключенияTLS
.-t N
,--timelimit=N
— Ограничение времени в секундах.clickhouse-benchmark
прекращает отправку запросов, когда указанное ограничение времени достигнуто. Значение по умолчанию: 0 (ограничение времени отключено).--port=N
— Порт сервера. Значение по умолчанию: 9000. Для режима сравнения вы можете использовать несколько ключей--port
.--confidence=N
— Уровень доверия для T-теста. Возможные значения: 0 (80%), 1 (90%), 2 (95%), 3 (98%), 4 (99%), 5 (99.5%). Значение по умолчанию: 5. В режиме сравненияclickhouse-benchmark
выполняет независимый t-тест Стьюдента, чтобы определить, отличаются ли два распределения при выбранном уровне доверия.--cumulative
— Печать суммарных данных вместо данных за интервал.--database=DATABASE_NAME
— Имя базы данных ClickHouse. Значение по умолчанию:default
.--user=USERNAME
— Имя пользователя ClickHouse. Значение по умолчанию:default
.--password=PSWD
— Пароль пользователя ClickHouse. Значение по умолчанию: пустая строка.--stacktrace
— Вывод стек-трейсов. Когда эта опция установлена,clickhouse-benchmark
выводит стек-трейсы исключений.--stage=WORD
— Этап обработки запроса на сервере. ClickHouse останавливает обработку запроса и возвращает ответclickhouse-benchmark
на указанном этапе. Возможные значения:complete
,fetch_columns
,with_mergeable_state
. Значение по умолчанию:complete
.--roundrobin
— Вместо сравнения запросов для разных--host
/--port
просто выбирайте один случайный--host
/--port
для каждого запроса и отправляйте запрос к нему.--reconnect=N
- Контроль поведения повторного подключения. Возможные значения 0 (никогда не переподключаться), 1 (переподключаться для каждого запроса), или N (переподключаться после каждого N запросов). Значение по умолчанию: 0.--max-consecutive-errors=N
— Количество допустимых последовательных ошибок. Значение по умолчанию: 0.--ignore-error
,--continue_on_errors
— Продолжить тестирование, даже если запросы не удались.--client-side-time
— Отображать время с учетом сетевой коммуникации вместо времени на стороне сервера; Обратите внимание, что для серверных версий до 22.8 мы всегда отображаем время на стороне клиента.--help
— Отображает справочное сообщение.--verbose
— Увеличивает выразительность справочного сообщения.
Если вы хотите применить некоторые настройки для запросов, передайте их как ключ --<имя настройки сессии>= SETTING_VALUE
. Например, --max_memory_usage=1048576
.
Параметры окружения
Имя пользователя, пароль и хост можно задать через переменные окружения CLICKHOUSE_USER
, CLICKHOUSE_PASSWORD
и CLICKHOUSE_HOST
.
Аргументы командной строки --user
, --password
или --host
имеют приоритет над переменными окружения.
Вывод
По умолчанию clickhouse-benchmark
отчитывается за каждый интервал --delay
.
Пример отчета:
В отчетах вы можете найти:
-
Количество запросов в поле
Queries executed:
. -
Строку состояния, содержащую (в указанном порядке):
- Конечную точку сервера ClickHouse.
- Количество обработанных запросов.
- QPS: сколько запросов сервер выполнил за секунду в течение периода, указанного в аргументе
--delay
. - RPS: сколько строк сервер считывает за секунду в течение периода, указанного в аргументе
--delay
. - MiB/s: сколько Миб считывает сервер за секунду в течение периода, указанного в аргументе
--delay
. - результат RPS: сколько строк сервер поместил в результат запроса за секунду в течение периода, указанного в аргументе
--delay
. - результат MiB/s. Сколько Миб поместил сервер в результат запроса за секунду в течение периода, указанного в аргументе
--delay
.
-
Перцентили времени выполнения запросов.
Режим сравнения
clickhouse-benchmark
может сравнивать производительность двух работающих серверов ClickHouse.
Чтобы использовать режим сравнения, укажите конечные точки обоих серверов с помощью двух пар ключей --host
, --port
. Ключи соответствуют друг другу по позиции в списке аргументов, первый --host
соответствует первому --port
и так далее. clickhouse-benchmark
устанавливает соединения с обоими серверами, затем отправляет запросы. Каждый запрос адресован случайно выбранному серверу. Результаты отображаются в таблице.