> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по clickhouse-benchmark 

# clickhouse-benchmark

Подключается к серверу ClickHouse и многократно выполняет указанные запросы.

**Синтаксис**

```bash theme={null}
$ clickhouse-benchmark --query ["single query"] [keys]
```

или

```bash theme={null}
$ echo "single query" | clickhouse-benchmark [keys]
```

или

```bash theme={null}
$ clickhouse-benchmark [keys] <<< "single query"
```

Если вы хотите отправить набор запросов, создайте текстовый файл и поместите каждый запрос в отдельную строку этого файла. Например:

```sql theme={null}
SELECT * FROM system.numbers LIMIT 10000000;
SELECT 1;
```

Затем передайте этот файл на стандартный ввод `clickhouse-benchmark`:

```bash theme={null}
clickhouse-benchmark [keys] < queries_file;
```

<div id="clickhouse-benchmark-command-line-options">
  ## Параметры командной строки
</div>

* `--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`. Для [режима сравнения](#clickhouse-benchmark-comparison-mode) можно использовать несколько ключей `-h`.
* `-i N`, `--iterations=N` — Общее количество запросов. Значение по умолчанию: 0 (повторять бесконечно).
* `-r`, `--randomize` — Выполнять запросы в случайном порядке, если входных запросов больше одного.
* `-s`, `--secure` — Использовать соединение `TLS`.
* `-t N`, `--timelimit=N` — Ограничение по времени в секундах. `clickhouse-benchmark` прекращает отправку запросов по достижении указанного лимита. Значение по умолчанию: 0 (ограничение отключено).
* `--port=N` — Порт сервера. Значение по умолчанию: 9000. Для [режима сравнения](#clickhouse-benchmark-comparison-mode) можно использовать несколько ключей `--port`.
* `--confidence=N` — Уровень доверия для T-теста. Возможные значения: 0 (80%), 1 (90%), 2 (95%), 3 (98%), 4 (99%), 5 (99.5%). Значение по умолчанию: 5. В [режиме сравнения](#clickhouse-benchmark-comparison-mode) `clickhouse-benchmark` выполняет [Independent two-sample Student's t-test](https://en.wikipedia.org/wiki/Student%27s_t-test#Independent_two-sample_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` — Увеличивает подробность справочного сообщения.

Если вы хотите применить к запросам некоторые [настройки](/docs/ru/concepts/features/configuration/settings/overview), передайте их в виде ключа `--<session setting name>= SETTING_VALUE`. Например, `--max_memory_usage=1048576`.

<div id="clickhouse-benchmark-environment-variable-options">
  ## Параметры переменных окружения
</div>

Имя пользователя, пароль и хост можно задать через переменные окружения `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD` и `CLICKHOUSE_HOST`.
Аргументы командной строки `--user`, `--password` и `--host` имеют приоритет над переменными окружения.

<div id="clickhouse-benchmark-output">
  ## Вывод
</div>

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

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

```text theme={null}
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`.

* Процентили времени выполнения запросов.

<div id="clickhouse-benchmark-comparison-mode">
  ## Режим сравнения
</div>

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

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

<div id="clickhouse-benchmark-example">
  ## Пример
</div>

```bash theme={null}
$ echo "SELECT * FROM system.numbers LIMIT 10000000 OFFSET 10000000" | clickhouse-benchmark --host=localhost --port=9001 --host=localhost --port=9000 -i 10
```

```text theme={null}
Loaded 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
```
