clickhouse-benchmark
Устанавливает соединение с сервером ClickHouse и запускает циклическое выполнение указанных запросов.
Синтаксис
или
или
Если нужно выполнить набор запросов, создайте текстовый файл и расположите каждый запрос на отдельной строке в файле. Например:
После этого передайте этот файл в стандартный ввод clickhouse-benchmark
:
Ключи
--query=QUERY
— исполняемый запрос. Если параметр не передан,clickhouse-benchmark
будет считывать запросы из стандартного ввода.-c N
,--concurrency=N
— количество запросов, которыеclickhouse-benchmark
отправляет одновременно. Значение по умолчанию: 1.-d N
,--delay=N
— интервал в секундах между промежуточными отчетами (чтобы отключить отчеты, установите 0). Значение по умолчанию: 1.-h HOST
,--host=HOST
— хост сервера. Значение по умолчанию:localhost
. Для режима сравнения можно использовать несколько-h
ключей.-p N
,--port=N
— порт сервера. Значение по умолчанию: 9000. Для режима сравнения можно использовать несколько-p
ключей.-i N
,--iterations=N
— общее число запросов. Значение по умолчанию: 0 (вечно будет повторяться).-r
,--randomize
— использовать случайный порядок выполнения запросов при наличии более одного входного запроса.-s
,--secure
— используетсяTLS
соединение.-t N
,--timelimit=N
— лимит по времени в секундах.clickhouse-benchmark
перестает отправлять запросы при достижении лимита по времени. Значение по умолчанию: 0 (лимит отключен).--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
.--json=FILEPATH
— дополнительный вывод в форматеJSON
. Когда этот ключ указан,clickhouse-benchmark
выводит отчет в указанный JSON-файл.--user=USERNAME
— имя пользователя ClickHouse. Значение по умолчанию:default
.--password=PSWD
— пароль пользователя ClickHouse. Значение по умолчанию: пустая строка.--stacktrace
— вывод трассировки стека исключений. Когда этот ключ указан,clickhouse-bencmark
выводит трассировку стека исключений.--stage=WORD
— стадия обработки запроса на сервере. ClickHouse останавливает обработку запроса и возвращает ответclickhouse-benchmark
на заданной стадии. Возможные значения:complete
,fetch_columns
,with_mergeable_state
. Значение по умолчанию:complete
.--help
— показывает справку.
Если нужно применить настройки для запросов, их можно передать как ключ --<session setting name>= SETTING_VALUE
. Например, --max_memory_usage=1048576
.
Вывод
По умолчанию, clickhouse-benchmark
выводит сообщение для каждого --delay
интервала.
Пример сообщения:
В сообщении можно найти:
-
Количество запросов в поле
Queries executed:
. -
Строка статуса, содержащая (в таком же порядке):
- Endpoint сервера ClickHouse.
- Число обработанных запросов.
- QPS: количество запросов, выполняемых сервером за секунду в течение
--delay
интервала. - RPS: количество строк, читаемых сервером за секунду в течение
--delay
интервала. - MiB/s: количество Мебибайтов, считываемых сервером за секунду в течение
--delay
интервала. - result RPS: количество строк, добавленное сервером в результат запроса за секунду в течение
--delay
интервала. - result MiB/s. количество Мебибайтов, размещаемое сервером в результат запроса за секунду в течение
--delay
интервала.
-
Процентили времени выполнения запросов.
Режим сравнения
clickhouse-benchmark
может сравнивать производительность двух работающих серверов ClickHouse.
Для использования сравнительного режима укажите конечную точку двух серверов двумя парами ключей --host
, --port
. Связь ключей соответствует позициям в списке аргументов: первый --host
соответствует первому --port
и так далее. clickhouse-benchmark
устанавливает соединение с обоими серверами и отсылает запросы. Каждый запрос адресован случайно выбранному серверу. Результаты выводятся отдельно для каждого сервера.