clickhouse-benchmark
Подключается к серверу ClickHouse и многократно отправляет заданные запросы.
Синтаксис
или
или
Если вы хотите отправить набор запросов, создайте текстовый файл и поместите каждый запрос на отдельной строке в этом файле. Например:
Затем передайте этот файл в стандартный ввод программы clickhouse-benchmark:
Параметры командной строки
--query=QUERY— Запрос для выполнения. Если этот параметр не передан,clickhouse-benchmarkбудет читать запросы из стандартного ввода.--query_id=ID— ID запроса.--query_id_prefix=ID_PREFIX— Префикс 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выполняет t-тест Стьюдента для двух независимых выборок, чтобы определить, не различаются ли две выборки при выбранном уровне доверия.--cumulative— Вывод накопленных данных вместо данных по интервалам.--database=DATABASE_NAME— Имя базы данных ClickHouse. Значение по умолчанию:default.--user=USERNAME— Имя пользователя ClickHouse. Значение по умолчанию:default.--password=PSWD— Пароль пользователя ClickHouse. Значение по умолчанию: пустая строка.--stacktrace— Вывод трассировок стека. При указании этого параметраclickhouse-bencmarkвыводит трассировки стека для исключений.--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 устанавливает подключения к обоим серверам, затем отправляет запросы. Каждый запрос отправляется на случайно выбранный сервер. Результаты отображаются в таблице.