最近在做Presto的研究,系统中有时候会因为重复执行部分SQL查询而导致整个系统的查询会很慢,为了便于重现慢SQL的一些执行过程,这里用到了
Benchmark Driver,本文主要描述
Benchmark Driver的使用方法
-
安装
-
下载文件:
https://repo1.maven.org/maven2/com/facebook/presto/presto-benchmark-driver/0.150/presto-benchmark-driver-0.150-executable.jar
-
重命名文件:mv
presto-benchmark-driver-0.150-executable.jar
presto-benchmark-driver
-
修改文件权限:chmod u+x
presto-benchmark-driver
-
-
配置:
-
在presto-benchmark-driver的相同目录创建
suite.json文件,内容如下
{“file_formats”: {“query”: [“test.*”], #此处为正则表达式,表明sql目录下所有test开头的文件都会被执行。目前的版本貌似每个文件只能写一个SQL“schema”: [ “default.*” ], #此处定义匹配执行的schema,同样为正则表达式“session”: {}}}
-
在presto-benchmark-driver的相同目录创建sql目录,在sql目录下面创建test.sql
-
在presto-benchmark-driver的相同目录创建
-
执行
-
执行:
./presto-benchmark-driver –server localhost:8082 –debug –catalog hv –warm 10
此处执行了presto的server,catalog,重复执行次数(默认为4次)
-
更多参数可以通过–help来查看
-
-
观察
最终执行效果如下:
一共包含三种时间WallTime,ProcessCpuTime,queryCpuTime,每种时间都包含P50,Mean,stand三个值
WallTime:用户要可以看到查询结果要等待的时间
processCpuTime:整个集群为助理查询而消耗的CPU时间,包含一些垃圾回收的时间
queryCpuTime:整个集群为助理查询而消耗的CPU时间
版权声明:本文为sun7545526原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。