Подключается к серверу ClickHouse и многократно выполняет указанные запросы.
Синтаксис
$ clickhouse-benchmark --query ["single query"] [keys]или
$ echo "single query" | clickhouse-benchmark [keys]или
$ clickhouse-benchmark [keys] <<< "single query"Если вы хотите отправить набор запросов, создайте текстовый файл и поместите каждый запрос в отдельную строку этого файла. Например:
SELECT * FROM system.numbers LIMIT 10000000;
SELECT 1;Затем передайте этот файл на стандартный ввод clickhouse-benchmark:
clickhouse-benchmark [keys] < queries_file;Параметры командной строки
--query=QUERY— Запрос для выполнения. Если этот параметр не указан,clickhouse-benchmarkбудет читать запросы из стандартного ввода.--query_id=ID— Query id.--query_id_prefix=ID_PREFIX— Префикс Query id.--queries-format=FORMAT— Формат запросов, считываемых из стандартного ввода. Возможные значения:tsv(по умолчанию, по одному запросу с экранированной табуляцией в строке) иscript(разбирать ввод как сценарий из нескольких запросов, разделённых точкой с запятой). Ограничениеscript: запросыINSERT ... FORMATдолжны находиться на одной строке.-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: 10.
localhost:9000, queries 10, QPS: 6.772, RPS: 67904487.440, MiB/s: 518.070, result RPS: 67721584.984, result MiB/s: 516.675.
0.000% 0.145 sec.
10.000% 0.146 sec.
20.000% 0.146 sec.
30.000% 0.146 sec.
40.000% 0.147 sec.
50.000% 0.148 sec.
60.000% 0.148 sec.
70.000% 0.148 sec.
80.000% 0.149 sec.
90.000% 0.150 sec.
95.000% 0.150 sec.
99.000% 0.150 sec.
99.900% 0.150 sec.
99.990% 0.150 sec.В отчёте вы можете найти:
-
Количество запросов в поле
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 устанавливает соединения с обоими серверами, а затем отправляет запросы. Каждый запрос направляется на случайно выбранный сервер. Результаты отображаются в таблице.
Пример
$ echo "SELECT * FROM system.numbers LIMIT 10000000 OFFSET 10000000" | clickhouse-benchmark --host=localhost --port=9001 --host=localhost --port=9000 -i 10Loaded 1 queries.
Queries executed: 5.
localhost:9001, queries 2, QPS: 3.764, RPS: 75446929.370, MiB/s: 575.614, result RPS: 37639659.982, result MiB/s: 287.168.
localhost:9000, queries 3, QPS: 3.815, RPS: 76466659.385, MiB/s: 583.394, result RPS: 38148392.297, result MiB/s: 291.049.
0.000% 0.258 sec. 0.250 sec.
10.000% 0.258 sec. 0.250 sec.
20.000% 0.258 sec. 0.250 sec.
30.000% 0.258 sec. 0.267 sec.
40.000% 0.258 sec. 0.267 sec.
50.000% 0.273 sec. 0.267 sec.
60.000% 0.273 sec. 0.267 sec.
70.000% 0.273 sec. 0.267 sec.
80.000% 0.273 sec. 0.269 sec.
90.000% 0.273 sec. 0.269 sec.
95.000% 0.273 sec. 0.269 sec.
99.000% 0.273 sec. 0.269 sec.
99.900% 0.273 sec. 0.269 sec.
99.990% 0.273 sec. 0.269 sec.
No difference proven at 99.5% confidence