缓存命中率排查方法
缓存命中率排查方法
1.缓存命中率分析方法
1.1 缓存命中率分析数据源
youdata库下 resource_query_log,data_connection,new_report 表
关联方式:resource_query_log.data_connection_id = data_connection.id resource_query_log. related_resource_id = new_report.id
demo示例报告:https://demo.youdata.com/dash/folder/1159?rid=97995
1.2 智能缓存统计分析数据源
youdata库下 cache_query_log,new_report,project表
关联方式 : cache_query_log. report_id = new_report.id cache_query_log.project_id = project.id
demo示例报告:https://demo.youdata.com/dash/folder/1159?rid=98075&ignoreDefaultBookmark=true
2.排查缓存命中率低的方法
2.1示例排查1-首次缓存命中率
2.1.1 首次缓存命中率
缓存命中率分析报告---排查缓存命中可以先以报告粒度为主,查询首次未命中缓存的报告记录详情。首次的判断原理是用 [开始查询时间] = [同一个resourceId的最小查询时间] 的逻辑作为判断。以首次访问命中率入手排查,通过确定报告资源的缓存是否已经产生生效,进而排查缓存命中率低的原因
2.2.2 由报告粒度到图表粒度
缓存命中率分析报告---通过报告粒度,再去排查该报告下具体是哪些组件查询是没有命中缓存的,通过具体的组件去进行分析,以 c-bq7qjhS6usjd5zf78HwkGQ组件为例
通过组件id去后台查询这个组件的访问情况,可以看到该组件今日有调用缓存生成的接口,但是访问没有命中缓存
2.2.3 分析组件的缓存情况
智能缓存统计报告---然后拿这个组件id去 智能缓存统计 这个报告中查询,发现这个组件的缓存数据状态是waiting 等待中,证明缓存数据还没有生成,所以查询才没有命中缓存数据
2.2.4 查询报告所使用表的推送信息
通过报告id或者组件id去定位到用到的模型和模型中使用到的表信息,以下示例是通过组件id去查找对应模型和使用到的表信息: 控制台输入 store.current.components.find((comp) => comp.id === 组件id)
找到对应模型和模型用到的表,并去 cache_table_task 这个表去查找这几个表的数据产出时间,发现有表的产出时间比较晚。
2.2.5 优化方法
优化办法就是查出来对应的产出时间比较晚的表的产出时间提前下,这样可以保证在bi侧用户访问之前把缓存给完成,增大缓存命中率
以上内容对您是否有帮助?