clickhouse的benchmark工具使用方法

本文介绍了如何使用clickhouse-benchmark工具对ClickHouse服务器进行性能测试。包括了使用语法、设置选项、输出报告的解读以及如何在比较模式下测试两个服务器的性能。
摘要由CSDN通过智能技术生成

clikchouse官方提供了一个benchmark工具,能够连接到ClickHouse服务器并重复发送指定的查询。

使用语法:

#第一种语法
echo "single query" | clickhouse-benchmark [keys]

#第二种语法
clickhouse-benchmark [keys] <<< "single query"

#其中的single query代表简单的sql查询
#[keys]表示的是使用的参数

如果想执行多条语句,可以将语句写到文件中,然后将文件传给clickhouse-benchmark。例如:

#在文件queries_file中写sql语句,每条sql语句一行:
SELECT * FROM system.numbers LIMIT 10000000
SELECT 1

#将文件queries_file传递给clickhouse-benchmark
clickhouse-benchmark [keys] < queries_file

 

keys:

参数含义默认值
-c N 或者 --concurrency=Nclickhouse-benchmark发送查询的并发数量1
-d N 或者 --delay=N运行中返回报告的时间间隔,设置0以禁用1
-h WORD 或者 --host=WORD

服务器host。

对于 comparison mode ,可以使用多个-h。

localhost
-p N 或者 --port=N

服务器port。

对于 comparison mode ,可以使用多个-p。

9000
-i N 或者 --iterations=N查询的总量0
-r 或者 --randomize在输入的查询多于1个的情况下采用随机顺序
-s 或者 --secure使用TLS连接
-t N 或者 --timelimit=N时间限制(s),一到时间会停止发送请求0(表示禁用时间限制)
--confidence=N

T-test的置信区间级别。

可能的值有: 0 (80%), 1 (90%), 2 (95%), 3 (98%), 4 (99%), 5 (99.5%)。

对于 comparison mode ,clickhouse-benchmark执行

Independent two-sample Student's t-test 测试来确定在改置信区间级别下,两个分布是否相同。

5
--cumulative输出累计统计数据,而不输出间隔统计数据
--database=DATABASE_NAMEclickhouse运行查询的库名default
--json=FILEPATHJSON输出。当设置了这个键,clickhouse会将报告输出到指定的JSON文件
--user=USERNAME运行查询的用户名default
--password=PSWD对应用户名的密码空字符串
--stacktrace堆栈跟踪输出。设置后会输出异常的堆栈输出
--stage=WORD服务器上的查询处理阶段。clickhouse会停止查询并返回指定阶段的值。可能值:complete, fetch_columns, with_mergeable_statecomplete
--help显示帮助菜单
--continue_on_errors有错误时不退出,继续运行

如果想要对查询应用其他设置项,可以将想要应用的设置作为键值传递。

模板为:--<session setting name>= SETTING_VALUE

例如:--max_memory_usage=1048576

 

输出:

默认情况下,clickhouse会返回每个时间间隔(通过--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参数指定的时间段内,服务器每秒读取多少MB的数据
    • result RPS:在--delay参数指定的时间段内,服务器每秒返回多少行查询结果
    • result MiB/s:在--delay参数指定的时间段内,服务器每秒返回多少MB的查询结果
  • 查询执行时间的百分比。
    • 当前版本中,
    • 这个并不是n%的sql语句平均运行时间的意思,不然也不会是递增的
    • 这个是说,在所有运行的sql语句中,第n%个sql语句的执行时间是多少秒

 

Comparison mode:

clickhouse-benchmark 可以比较两个正在运行的ClickHouse服务器的性能。

要使用Comparison mode,请使用--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.  

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值