AnalyticDB for MySQL推出一键诊断功能,可针对指定时间段的集群运行状况发起诊断,结合监控数据、日志数据以及库表状态等信息进行联合分析,从集群的资源水位、负载变化、查询SQL、算子、存储等多方面评估集群的健康状况,帮助您提高集群问题排查、分析效率。
操作步骤
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,单击目标集群ID。
在左侧导航栏中,单击监控信息。
拖动指标曲线或在下拉列表中选择待诊断的时间范围,单击一键诊断。
重要该功能仅支持诊断14天以内的信息,当前支持的诊断时间范围最长为1小时。
系统会自动弹出诊断结果页面,您可以在该页面查看集群的诊断结果。
解读一键诊断报告
诊断结果包含Bad SQL检测、异常Pattern检测、业务指标检测、计算层检测、存储层检测等信息,您可以根据诊断结果快速分析并解决问题。
Bad SQL检测
Bad SQL检测包括Stage个数TOP SQL、最耗内存SQL、最耗CPU SQL、数据读取量TOP SQL、输出数据量TOP SQL和最耗时SQL等检测指标。每个检测指标中最多包含10条SQL,且每条SQL均按照当前检测指标降序排列。同时,系统会在后台对最耗时SQL指标中的每条SQL完成自诊断,点击操作列左侧的按钮,可即时查看SQL诊断结果。若您需要深入分析当前查询,可点击操作列的诊断,跳转至查询详情页面,查看执行计划,进行自助分析。
异常Pattern检测
异常Pattern检测会查询指定时间段内指标异常的Pattern,例如某个Pattern的提交次数是否突然增多、Pattern的最大使用内存是否突然增加。异常Pattern检测包括峰值内存、查询耗时、算子Cost、输出数据量和提交次数等检测指标,每个检测指标中包含SQL Pattern、检测结果详情和Pattern的其他相关指标3个字段,其中:
SQL Pattern:SQL模板,您可以根据SQL模板判断异常Pattern的SQL语句。
检测结果详情:异常Pattern的原因,主要包括分位值、最值的比较等信息。
Pattern的其他相关指标:当前异常Pattern的峰值内存、算子Cost、查询耗时等相关指标,帮助您进行综合判断和分析。
业务指标检测
业务指标检测会对集群的各项业务指标进行检测,包括集群连接数检测和查询响应时间检测。
集群连接数检测
集群连接数检测会把指定时间段内(例如:14:00-15:00)的数据与前3天每天同一时间段(14:00-15:00)的数据做对比(即同比)。若当前时间段内,百分之八十的数据点同比前3天同一时间的数据点,增长率超过百分之二十,则认为连接数同比升高,您需要关注是否有新的业务流量或异常连接等问题。
查询响应时间检测
查询响应时间检测与集群连接数检测的逻辑相同。即当前时间段内,若百分之八十的数据点同比前3天同一时间的数据点,增长率超过百分之二十,则认为查询响应时间同比升高,您需要关注是否有流量升高或慢SQL等问题。
增长率的计算方法为:(当前数据点-过去数据点)/过去数据点*100
。
计算层检测
存储层检测包括异常算子检测、节点在线状态检测、CPU使用率倾斜检测、资源组平均CPU使用率检测、资源组间CPU使用率倾斜检测和时序指标相关性分析。
异常算子检测
算子详细信息
计算层检测功能,可以帮助您快速查找异常算子(例如Join算子、Aggregation算子、Sort算子、Window算子),并按照当前检测指标降序排列。您可以根据内存消耗、CPU消耗、输入输出数据量等字段对异常算子进行分析,或点击操作列的诊断,查看算子所属的原始查询执行计划,进一步分析和确认算子的SQL语句、来源等信息。
算子汇总信息
某些情况下,多个异常算子会导致资源消耗增大,异常算子检测会将最耗CPU算子和最耗内存算子2个指标进行聚合,您可以根据聚合后的结果查看各类算子指标的最大值,确认异常算子。
节点在线状态检测
Executor节点压力较大或内部异常时,可能会导致Executor节点不健康,无法提供正常的服务,最终导致查询失败或查询变慢。节点在线状态检测会自动检测指定时间段内的Executor节点状态,若Executor节点不健康,则会提示检测异常,从而帮助您判断问题时段的异常原因。
CPU使用率倾斜检测
检测不同Executor节点间CPU使用率是否均衡,若所有Executor节点的最高CPU使用率比其平均CPU使用率高出1倍,且持续时间超过指定时间段的百分之八十,则认为Executor节点间的CPU使用率存在倾斜,建议您持续关注并排查是否存在数据倾斜。详细信息请参见数据建模诊断。
检测结果分为三个等级,包括NORMAL(正常)、WARNING(警告)、CRITICAL(重要)。检测等级为CRITICAL时,需要您重点关注,否则会影响业务的正常运行。
资源组平均CPU使用率检测
检测指定时间段内资源组平均CPU使用率,若某个资源组的CPU使用率超过百分之八十,且持续时间超过指定时间段的百分之八十,则认为该资源组CPU使用率较高,建议您评估是否需要调整该资源组的资源量。详细信息请参见修改资源组。
检测结果分为三个等级,包括NORMAL(正常)、WARNING(警告)、CRITICAL(重要)。检测等级为CRITICAL时,需要您重点关注,否则会影响业务的正常运行。
资源组间CPU使用率倾斜检测
检测不同资源组间CPU使用率是否均衡。若水位最高的资源组CPU使用率比资源组平均CPU使用率高出1.5倍,且持续时间超过指定时间段的百分之八十,则认为资源组间CPU使用率存在倾斜,建议您评估是否需要调整不同资源组的资源量。详细信息请参见修改资源组。
检测结果分为三个等级,包括NORMAL(正常)、WARNING(警告)、CRITICAL(重要)。检测等级为CRITICAL时,需要您重点关注,否则会影响业务的正常运行。
时序指标相关性分析
当计算节点平均CPU使用率和计算节点最大CPU使用率指标有异常时,时序指标相关性分析会检测导致这两个指标异常的关联指标(包括查询QPS、Build任务数、更新TPS、删除TPS、写入TPS等指标)。您可以使用关联指标,判断可能导致CPU使用率升高的原因。
例如,检测到与计算节点CPU平均使用率变化相关的指标有查询QPS,那么说明可能存在大量查询从而导致计算节点CPU平均使用率升高。
进行时序指标相关性分析时,建议在诊断时间中包含重要指标异常监控时间段,以便您快速掌握重要指标异常的原因。
存储层检测
存储层检测包括建表与表访问检测、节点在线状态检测、最大CPU使用率检测、平均CPU使用率检测、CPU使用率倾斜检测和时序指标相关性分析。
建表与表访问检测
表访问检测
表访问检测会自动检测指定时间段内被访问的表,包括最大数据读取量、平均数据读取量、最大数据读取耗时、平均数据读取耗时和表访问次数5个指标,并按照当前检测指标降序排列。
数据分布倾斜表详情
AnalyticDB MySQL版分区表需要选择一个分布比较均匀的字段作为分布字段,在数据写入时会根据分布字段进行数据打散,写入到不同的Worker节点上。选择的分布字段不均匀时,会导致表倾斜。表倾斜检测功能会先定位数据量最大的表,然后再检测这些表是否存在数据倾斜。对倾斜的表进行优化,可以提升查询性能,均衡磁盘空间的数据量,降低磁盘锁定的风险。
不合理分区表详情
表分区不合理检测会先定位数据量最大的表,然后再检测这些表是否存在分区不合理的情况。
节点在线状态检测
Worker节点压力较大或内部异常时,可能会导致Worker节点不健康,无法提供正常的服务,最终导致查询失败或者查询变慢。节点在线状态检测会自动检测指定时间段内的Worker节点状态,若Worker节点不健康,则提示检测异常,从而帮助您判断问题时段的异常原因。
最大CPU使用率检测
检测指定时间段内所有Worker节点的最大CPU使用率。若所有Worker节点的最大CPU使用率超过百分之九十,且持续时间超过指定时间段的百分之八十,则认为CPU使用率较高,需要您排查是否存在慢SQL。详细信息请参见典型慢查询。
检测结果分为三个等级,包括NORMAL(正常)、WARNING(警告)、CRITICAL(重要)。检测等级为CRITICAL时,需要您重点关注,否则会影响业务的正常运行。
平均CPU使用率检测
检测指定时间段内所有Worker节点的平均CPU使用率。若所有Worker节点的平均CPU使用率超过百分之八十,且持续时间超过指定时间段的百分之八十,则认为CPU使用率较高,需要您排查是否存在慢SQL。详细信息请参见典型慢查询。
检测结果分为三个等级,包括NORMAL(正常)、WARNING(警告)、CRITICAL(重要)。检测等级为CRITICAL时,需要您重点关注,否则会影响业务的正常运行。
CPU使用率倾斜检测
检测不同Worker节点间CPU使用率是否均衡,若所有Worker节点的最高CPU使用率比其平均CPU使用率高出1倍,且持续时间超过指定时间段的百分之八十,则认为Worker节点间的CPU使用率存在倾斜,建议您持续关注并排查是否存在数据倾斜。详细信息请参见数据建模诊断。
检测结果分为三个等级,包括NORMAL(正常)、WARNING(警告)、CRITICAL(重要)。检测等级为CRITICAL时,需要您重点关注,否则会影响业务的正常运行。
时序指标相关性分析
当读写节点平均CPU使用率和读写节点最大CPU使用率指标存在异常时,时序指标相关性分析会检测导致这两个指标异常的关联指标(包括查询QPS、Build任务数、更新TPS、删除TPS、写入TPS等指标)。您可以使用关联指标,判断可能导致CPU使用率升高的原因。
例如,检测到与读写节点平均CPU使用率变化相关的指标有查询QPS,那么说明可能存在大量查询从而导致读写节点CPU平均使用率升高。
进行时序指标相关性分析时,建议在诊断时间中包含重要指标异常监控时间段,以便您快速掌握重要指标异常的原因。