Перейти к основному содержанию
Подключается к серверу ClickHouse и многократно выполняет указанные запросы. Синтаксис
или
или
Если вы хотите отправить набор запросов, создайте текстовый файл и поместите каждый запрос в отдельную строку этого файла. Например:
Затем передайте этот файл на стандартный ввод clickhouse-benchmark:

Параметры командной строки

  • --query=QUERY — Запрос для выполнения. Если этот параметр не указан, clickhouse-benchmark будет читать запросы из стандартного ввода.
  • --query_id=ID — Query id.
  • --query_id_prefix=ID_PREFIX — Префикс Query id.
  • -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 выполняет Independent two-sample Student’s t-test, чтобы определить, различаются ли два распределения при выбранном уровне доверия.
  • --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 мы всегда показываем время на стороне клиента.
  • --proto-caps — Включить/отключить разбиение на фрагменты при передаче данных. Варианты (можно перечислять через запятую): chunked_optional, notchunked, notchunked_optional, send_chunked, send_chunked_optional, send_notchunked, send_notchunked_optional, recv_chunked, recv_chunked_optional, recv_notchunked, recv_notchunked_optional. Значение по умолчанию: notchunked.
  • --help — Показывает справочное сообщение.
  • --verbose — Увеличивает подробность справочного сообщения.
Если вы хотите применить к запросам некоторые настройки, передайте их в виде ключа --<session setting name>= 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.
    • result RPS: сколько строк сервер возвращает в результате запроса в секунду за период, указанный в аргументе --delay.
    • result MiB/s. Сколько мебибайт сервер возвращает в результате запроса в секунду за период, указанный в аргументе --delay.
  • Процентили времени выполнения запросов.

Режим сравнения

clickhouse-benchmark может сравнивать производительность двух работающих серверов ClickHouse. Чтобы использовать режим сравнения, укажите конечные точки обоих серверов, задав две пары ключей --host, --port. Ключи сопоставляются по позиции в списке аргументов: первый --host — с первым --port и так далее. clickhouse-benchmark устанавливает соединения с обоими серверами, а затем отправляет запросы. Каждый запрос направляется на случайно выбранный сервер. Результаты отображаются в таблице.

Пример

Последнее изменение 12 июня 2026 г.