clickhouse-benchmark
Устанавливает соединение с сервером 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будет считывать запросы из стандартного ввода.
- -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: 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:.
- 
Строка статуса, содержащая (в таком же порядке): - 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 устанавливает соединение с обоими серверами и отсылает запросы. Каждый запрос адресован случайно выбранному серверу. Результаты выводятся отдельно для каждого сервера.
Пример
$ echo "SELECT * FROM system.numbers LIMIT 10000000 OFFSET 10000000" | clickhouse-benchmark -i 10
Loaded 1 queries.
Queries executed: 6.
localhost:9000, queries 6, QPS: 6.153, RPS: 123398340.957, MiB/s: 941.455, result RPS: 61532982.200, result MiB/s: 469.459.
0.000%      0.159 sec.
10.000%     0.159 sec.
20.000%     0.159 sec.
30.000%     0.160 sec.
40.000%     0.160 sec.
50.000%     0.162 sec.
60.000%     0.164 sec.
70.000%     0.165 sec.
80.000%     0.166 sec.
90.000%     0.166 sec.
95.000%     0.167 sec.
99.000%     0.167 sec.
99.900%     0.167 sec.
99.990%     0.167 sec.
Queries executed: 10.
localhost:9000, queries 10, QPS: 6.082, RPS: 121959604.568, MiB/s: 930.478, result RPS: 60815551.642, result MiB/s: 463.986.
0.000%      0.159 sec.
10.000%     0.159 sec.
20.000%     0.160 sec.
30.000%     0.163 sec.
40.000%     0.164 sec.
50.000%     0.165 sec.
60.000%     0.166 sec.
70.000%     0.166 sec.
80.000%     0.167 sec.
90.000%     0.167 sec.
95.000%     0.170 sec.
99.000%     0.172 sec.
99.900%     0.172 sec.
99.990%     0.172 sec.