概要描述
hyperdrive 表的性能日志有几个参数可以控制;
详细说明
- 使用场景是否匹配
- 是否走了索引
- 索引使用是否规范
- 开启性能日志排查
使用场景
参见以下连接: Inceptor 查询模式 Local/Cluster 介绍
是否走了索引
ArgoDB 5.2.2 之前,TDH9.x 之前的,只能通过搜索日志中的关键字;
这个关键字是确认是否走了二级索引:getScanQuery secondaryIndexScanQuery
新版本的 ArgoDB 和 TDH ,通过 explain 可以查看;
索引使用是否规范
1、索引字段 string 类型
1,如果是单个字段进行条件查询,仅需建立单列索引即可。
2,若是对多字段进行条件查询,推荐建立联合索引(多列索引)。
2、如果一个索引包含了多列,过滤条件最好是把这些索引列都加上;
性能日志参数
性能日志有以下三个配置项:
1、hyperdrive.visible.overtime
该配置项用于配置明显超时的时间,单位为毫秒,默认为5000。如果单次rpc超过该时间,会出现如下日志(关键字 has a visible overtime cost);
可以不用修改;
2、hyperdrive.enable.trace
该配置项用于控制是否打印详细的性能日志,默认为false不打印。当该配置项为true时,运行查询会打印详细的性能日志以及scan的内容,如下图
第一句日志里面的几个关键字说明:
- scanTime是整个scan所花费的总时间
- rpcCount是rpc请求的次数,
- rpcTime是rpc所花费的总时间,
- rpcAverateTime是每次rpc花费的平均时间
- 下面5th_percentile、10th_percentile、20th_percentile是花费时间最长的5%、10%、20%的rpc请求所花费的时间;
- percentile time是计算这三个值所花费的时间。
第二句日志则为此次scan的详情。
3、hyperdrive.trace.scan.interval
该配置项在hyperdrive.enable.trace为true的情况下生效,意为运行多少次scan会打印一次scan的详细性能日志,默认为1。主要用于高并发的环境中用于控制日志的数量。
具体使用方法:
使用以上3个参数时,需要先设置 set inceptor.conf.validation配置项为false;
然后再根据需要设置以上参数;
推荐设置:
set inceptor.conf.validation=false;
set hyperdrive.enable.trace=true;
另外两个参数不用特意调整;