当Quark/Inceptor上跑批变慢、不健康,如何借助星环运维工具AquilaInsight进行排查?
友情链接:
- 首先需要先确定哪些Quark变慢?什么时候开始变慢?时间范围尽量缩小。此处需要重点关注两个时间段:变慢/异常的时间段 和 正常的时间段;
2. 进入Aquila,查看以下几个点:
- 告警记录页面:查看两个时间段时间内活跃/已解除 的告警记录,有没有可能相关的异常指标;
- 仪表盘页面:
3.
进入DBAService,查看以下几个点:
- Query-Statistics页面:
- 查看两个时间段 以上Quark的历史业务统计数据的变化趋势。参考DBAService的Query-Statistics页面解读,对每种统计指标都看一下,尤其是:shuffle读/写,任务成功数,查询耗时,GC耗时,任务耗时等维度;
- 查看两个时间段 Query耗时TOPN的的最大耗时有没有变化,有没有明显异常Query
- Cluster-Status页面
- 查看两个时间段 Quark Server的堆使用情况,gc耗时等有没有明显异常,一般GC超过
4. 查看manager节点/var/log/aquila/transwarp-ops目录;
- restart.record, jstat.record, jvm-stats, logs这些文件或目录;
5. 查看Quark Server日志有没有Exception或者Error之类的报错信息;
6. 通过以上步骤中发现有异常的数据,跟客户确认更多细节,比如集群是否变更,业务是否有变更等等,进一步缩小时间范围,最好能将 异常/变慢的时间范围缩小到几个小时或者几十分钟内;
7. 如果时间范围有缩小,则在DBAService的Query-Queries页面,打开 历史 功能,设置执行时间范围,查询在这个时间范围内出现过的所有Query。
- 可以根据 持续时长,task数量,shuffle读/写等指标进行排序,有没有明显耗时久,或者task数多,或者shuffle量大,或者有失败task之类的查询;
- 对比 正常时间段 和 异常时间段 的不同之处,结合客户的业务分析是否符合预期;
- 如果有异常的Query,可以查看Query详情页面,分析Query的执行计划,job/stage/task执行特征,耗时分布,过滤条件下推情况,库表信息等等。参考:如何通过Aquila Insight快速定位一个查询为什么慢?