跳转到主要内容
连接到 ClickHouse 服务器,并重复发送指定查询。 语法
如果要发送一组查询,请创建一个文本文件,并将每条查询分别写在文件中的单独一行。例如:
然后将此文件传给 clickhouse-benchmark 的标准输入:

命令行选项

  • --query=QUERY — 要执行的查询。若未传入此参数,clickhouse-benchmark 将从标准输入读取查询。
  • --query_id=ID — 查询 ID。
  • --query_id_prefix=ID_PREFIX — 查询 ID 前缀。
  • -c N, --concurrency=Nclickhouse-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 会执行独立双样本 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。可能的值:completefetch_columnswith_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_optionalnotchunkednotchunked_optionalsend_chunkedsend_chunked_optionalsend_notchunkedsend_notchunked_optionalrecv_chunkedrecv_chunked_optionalrecv_notchunkedrecv_notchunked_optional。默认值:notchunked
  • --help — 显示帮助信息。
  • --verbose — 提高帮助信息的详细程度。
如果要对查询应用某些设置,请将它们作为参数 --<session setting name>= SETTING_VALUE 传入。例如,--max_memory_usage=1048576

环境变量选项

可通过环境变量 CLICKHOUSE_USERCLICKHOUSE_PASSWORDCLICKHOUSE_HOST 设置用户名、密码和主机。 命令行参数 --user--password--host 的优先级高于环境变量。

输出

默认情况下,clickhouse-benchmark 会在每个 --delay 时间间隔输出一次报告。 报告示例:
在报告中,您可以看到:
  • Queries executed: 字段中的查询数量。
  • 状态字符串,依次包含以下内容:
    • ClickHouse 服务器的端点。
    • 已处理的查询数量。
    • QPS:在 --delay 参数指定的时间段内,服务器每秒执行的查询数。
    • RPS:在 --delay 参数指定的时间段内,服务器每秒读取的行数。
    • MiB/s:在 --delay 参数指定的时间段内,服务器每秒读取的 MiB 数。
    • result RPS:在 --delay 参数指定的时间段内,服务器每秒写入查询结果的行数。
    • result MiB/s. 在 --delay 参数指定的时间段内,服务器每秒写入查询结果的 MiB 数。
  • 查询执行时间的百分位数。

比较模式

clickhouse-benchmark 可以比较两个正在运行的 ClickHouse 服务器的性能。 要使用比较模式,请使用两组 --host--port 选项指定两个服务器的端点。这些选项会按照它们在参数列表中的位置进行配对:第一个 --host 对应第一个 --port,依此类推。clickhouse-benchmark 会与两个服务器分别建立连接,然后发送查询。每个查询都会被发送到随机选中的一个服务器。结果将显示在表格中。

示例

最后修改于 2026年6月12日