Se conecta a un servidor de ClickHouse y envía repetidamente las consultas especificadas.
Sintaxis
$ clickhouse-benchmark --query ["single query"] [keys]o
$ echo "single query" | clickhouse-benchmark [keys]o
$ clickhouse-benchmark [keys] <<< "single query"Si desea enviar un conjunto de consultas, cree un archivo de texto y coloque cada consulta en una línea independiente del archivo. Por ejemplo:
SELECT * FROM system.numbers LIMIT 10000000;
SELECT 1;Luego, pasa este archivo a la entrada estándar de clickhouse-benchmark:
clickhouse-benchmark [keys] < queries_file;Opciones de línea de comandos
--query=QUERY— Consulta que se va a ejecutar. Si no se pasa este parámetro,clickhouse-benchmarkleerá las consultas desde la entrada estándar.--query_id=ID— ID de consulta.--query_id_prefix=ID_PREFIX— Prefijo del ID de consulta.--queries-format=FORMAT— Formato de las consultas leídas desde la entrada estándar. Posibles valores:tsv(predeterminado, una consulta por línea con tabulaciones escapadas) yscript(analiza la entrada como un script de varias consultas separadas por punto y coma). Limitación descript: las consultasINSERT ... FORMATdeben estar en una sola línea.-c N,--concurrency=N— Número de consultas queclickhouse-benchmarkenvía simultáneamente. Valor predeterminado: 1.-C N,--max_concurrency=N— Aumenta gradualmente el número de consultas paralelas hasta el valor especificado, generando un informe para cada nivel de concurrencia.--precise— Habilita informes precisos por intervalo con métricas ponderadas.-d N,--delay=N— Intervalo en segundos entre informes intermedios (para desactivar los informes, establezca 0). Valor predeterminado: 1.-h HOST,--host=HOST— Host del servidor. Valor predeterminado:localhost. Para el modo de comparación puede usar varias opciones-h.-i N,--iterations=N— Número total de consultas. Valor predeterminado: 0 (repetir indefinidamente).-r,--randomize— Ejecuta las consultas en orden aleatorio si hay más de una consulta de entrada.-s,--secure— Usa una conexiónTLS.-t N,--timelimit=N— Límite de tiempo en segundos.clickhouse-benchmarkdeja de enviar consultas cuando se alcanza el límite de tiempo especificado. Valor predeterminado: 0 (límite de tiempo deshabilitado).--port=N— Puerto del servidor. Valor predeterminado: 9000. Para el modo de comparación puede usar varias opciones--port.--confidence=N— Nivel de confianza para la prueba t. Posibles valores: 0 (80%), 1 (90%), 2 (95%), 3 (98%), 4 (99%), 5 (99.5%). Valor predeterminado: 5. En el modo de comparación,clickhouse-benchmarkrealiza la prueba t de Student para dos muestras independientes para determinar si las dos distribuciones no son diferentes con el nivel de confianza seleccionado.--cumulative— Imprime datos acumulados en lugar de datos por intervalo.--database=DATABASE_NAME— Nombre de la base de datos de ClickHouse. Valor predeterminado:default.--user=USERNAME— Nombre de usuario de ClickHouse. Valor predeterminado:default.--password=PSWD— Contraseña del usuario de ClickHouse. Valor predeterminado: cadena vacía.--stacktrace— Muestra stack traces. Cuando se establece esta opción,clickhouse-benchmarkmuestra los stack traces de las excepciones.--stage=WORD— Etapa del procesamiento de la consulta en el servidor. ClickHouse detiene el procesamiento de la consulta y devuelve una respuesta aclickhouse-benchmarken la etapa especificada. Posibles valores:complete,fetch_columns,with_mergeable_state. Valor predeterminado:complete.--roundrobin— En lugar de comparar consultas para distintos--host/--port, elige un--host/--portaleatorio para cada consulta y la envía allí.--reconnect=N— Controla el comportamiento de reconexión. Posibles valores: 0 (no reconectar nunca), 1 (reconectar para cada consulta) o N (reconectar después de cada N consultas). Valor predeterminado: 0.--max-consecutive-errors=N— Número de errores consecutivos permitidos. Valor predeterminado: 0.--ignore-error,--continue_on_errors— Continúa la prueba incluso si las consultas fallan.--client-side-time— Muestra el tiempo incluyendo la comunicación de red en lugar del tiempo del lado del servidor; tenga en cuenta que, para versiones del servidor anteriores a 22.8, siempre mostramos el tiempo del lado del cliente.--proto-caps— Habilita o deshabilita la fragmentación en la transferencia de datos. Opciones (pueden separarse por comas):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. Valor predeterminado:notchunked.--help— Muestra el mensaje de ayuda.--verbose— Aumenta la verbosidad del mensaje de ayuda.
Si desea aplicar algunas configuraciones a las consultas, páselas como una opción --<session setting name>= SETTING_VALUE. Por ejemplo, --max_memory_usage=1048576.
Opciones de variables de entorno
El nombre de usuario, la contraseña y el host pueden configurarse mediante las variables de entorno CLICKHOUSE_USER, CLICKHOUSE_PASSWORD y CLICKHOUSE_HOST.
Los argumentos de la línea de comandos --user, --password o --host tienen prioridad sobre las variables de entorno.
Salida
De forma predeterminada, clickhouse-benchmark muestra resultados para cada intervalo --delay.
Ejemplo del informe:
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.En el informe puede encontrar:
-
Número de consultas en el campo
Queries executed:. -
Cadena de estado que contiene (en este orden):
- Endpoint del servidor de ClickHouse.
- Número de consultas procesadas.
- QPS: Cuántas consultas ejecutó el servidor por segundo durante el período especificado en el argumento
--delay. - RPS: Cuántas filas lee el servidor por segundo durante el período especificado en el argumento
--delay. - MiB/s: Cuántos mebibytes lee el servidor por segundo durante el período especificado en el argumento
--delay. - RPS del resultado: Cuántas filas añade el servidor al resultado de una consulta por segundo durante el período especificado en el argumento
--delay. - MiB/s del resultado. Cuántos mebibytes añade el servidor al resultado de una consulta por segundo durante el período especificado en el argumento
--delay.
-
Percentiles del tiempo de ejecución de las consultas.
Modo de comparación
clickhouse-benchmark puede comparar el rendimiento de dos servidores ClickHouse en ejecución.
Para usar el modo de comparación, especifique los endpoints de ambos servidores mediante dos pares de opciones --host, --port. Las opciones se emparejan según su posición en la lista de argumentos: el primer --host se empareja con el primer --port, y así sucesivamente. clickhouse-benchmark establece conexiones con ambos servidores y luego envía consultas. Cada consulta se envía a un servidor seleccionado aleatoriamente. Los resultados se muestran en una tabla.
Ejemplo
$ 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