Перейти к основному содержимому
Перейти к основному содержимому

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.
  • -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.
  • --help — Показывает справочное сообщение.

Если вы хотите применить некоторые настройки для запросов, передайте их как ключ --<имя настройки сессии>= ЗНАЧЕНИЕ_НАСТРОЙКИ. Например, --max_memory_usage=1048576.

Вывод

По умолчанию clickhouse-benchmark создает отчеты для каждого интервала --delay.

Пример отчета:

В отчете вы можете найти:

  • Количество запросов в поле Запросы выполнены:.

  • Строка состояния, содержащая (в порядке):

    • Конечная точка сервера ClickHouse.
    • Количество обработанных запросов.
    • QPS: Какое количество запросов сервер выполнил в секунду в течение периода, указанного в аргументе --delay.
    • RPS: Какое количество строк сервер считывает в секунду в течение периода, указанного в аргументе --delay.
    • MiB/s: Какое количество миБ сервер считывает в секунду в течение периода, указанного в аргументе --delay.
    • результат RPS: Какое количество строк сервер поместил в результат запроса в секунду в течение периода, указанного в аргументе --delay.
    • результат MiB/s. Какое количество миБ сервер поместил в результат запроса в секунду в течение периода, указанного в аргументе --delay.
  • Перцентиль времени выполнения запросов.

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

clickhouse-benchmark может сравнивать производительность двух работающих серверов ClickHouse.

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

Пример