hyperdrive 表性能日志分析

  其他常见问题
内容纲要

概要描述

hyperdrive 表的性能日志有几个参数可以控制;

详细说明

  1. 使用场景是否匹配
  2. 是否走了索引
  3. 索引使用是否规范
  4. 开启性能日志排查

使用场景

参见以下连接: 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的内容,如下图

file

第一句日志里面的几个关键字说明:

  • 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;

另外两个参数不用特意调整;

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。