数据库自治服务DAS(Database Autonomy Service)提供巡检评分功能,每天定时对所有数据库实例进行巡检评分,并且支持自主选择数据库实例和巡检时段,手动发起巡检评分,帮助您了解数据库实例的运行情况。
前提条件
- 目标数据库实例如下:
- RDS MySQL
- 自建MySQL
- PolarDB MySQL版
- MyBase MySQL
- 云数据库Redis
- MyBase Redis
- 目标数据库实例已接入DAS,并且接入状态显示为连接正常,接入方法详情请参见接入阿里云数据库实例。
开启巡检评分
- 登录 DAS控制台。
- 在左侧导航栏,单击巡检评分。
- 在实例巡检评分页根据如下操作设置实例巡检评分。
- 开启自动巡检评分:
- 单击右上角的设置。
- 在弹出的设置巡检评分功能的对话框中选中引擎,然后单击确定,开启巡检评分功能。说明 开启自动巡检评分功能后,系统会对连接正常的实例每天进行一次评分。
- 手动发起巡检评分:
- 单击发起巡检。
- 在弹出的巡检实例对话框中,在选择应用的实例区域选择单个或多个目标实例,单击
。
- 在选择巡检时间区域,设置巡检时间。说明 巡检时间不能晚于当前时间,且巡检开始时间和巡检结束时间的间隔最小为1小时,最长为24小时。
- 单击确认。
- 开启自动巡检评分:
查看巡检评分结果
- 单击目标实例操作列的删除,删除该条巡检评分结果。
- 单击目标实例操作列的扣分详情,查看该实例的扣分详情表。
- 单击目标实例操作列的报告,查看该实例的评分报告详情表。
- 单击目标实例ID,跳转到实例的性能趋势页,查看该实例的性能趋势。详细内容请参见性能趋势。
- 单击
按钮,可将巡检评分结果导出到本地。
评分规则表
- RDS MySQL、自建MySQL和PolarDB MySQL版:
扣分项 含义 扣分子项 条件 所扣分数 CPU使用率(cpuUsage) 一天CPU平均使用率,多核CPU换算成单核计算。 警告 70%<=cpuUsage<=80% 1+(cpuUsage-0.7)*20 危险 cpuUsage>=80% min[3+(cpuUsage-0.8)*30,10] 内存使用率(memUsage) 一天内存平均使用率。 警告 80%<=memUsage<=90% 1-(memUsage-0.8)*20 危险 memUsage>90% min[(memUsage-0.9)*50, 10] 空间使用率(Space Usage) 重要 自建MySQL不支持空间使用率扣分项。已使用空间的平均值 / 总空间 * 100%。 可使用天数 availableDays<=30 15-availableDays/3 大表数量 重要 PolarDB MySQL版不进行大表分析,不支持此扣分项。bigTableCount>0 min(bigTableCount,15) 连接使用率(connectionRate) 一天内连接数平均值 / 最大允许连接数 。 警告 70%<=connectionRate<=80% 1 危险 connectionRate>80% 3 IOPS使用率(iopsUsage) 一天内IOPS平均值 /最大允许IOPS值* 100%。 警告 70%<iopsUsage<90% 3 危险 iopsUsage>90% 5 活跃会话(threadRunning) 一天内产生的活跃会话的个数。 警告 threadRunning>min(2*cpuCores+8,64) 3 危险 threadRunning>min(4*cpuCores+8,96) 9 慢SQL数量(slowSqlCount) 一天内产生的慢SQL总条数。 说明 单击后可查看执行次数Top5的慢SQL。存在 0<slowSqlCount<100 1+(slowSqlCount-10)/30 警告 100<=slowSqlCount<500 4+(slowSqlCount-100)/30 危险 slowSqlCount>=500 min[18+(slowSqlCount-50)/30, 30)] SQL安全审计(sqlInjectionCount) 风险SQL数量和SQL注入数量。 风险SQL riskSqlCount>0 min(riskSqlCount,5) SQL注入 sqlInjectionCount>0 min(sqlInjectionCount,5) 死锁 是否在一天时间内发生死锁。 存在 存在 3 - Redis:
扣分项 含义 扣分子项 条件 扣分公式 CPU使用率(cpuUsage) 一天CPU平均使用率,多核CPU换算成单核计算。 警告 70%<=cpuUsage<=80% 1+(cpuUsage-0.7)*20 危险 cpuUsage>=80% min[3+(cpuUsage-0.8)*30,10] 内存使用率(memUsage) 一天内存平均使用率。 警告 80%<=memUsage<=90% 1+(memUsage-0.8)*20 危险 memUsage>90% min[(memUsage-0.9)*50, 10] 连接使用率(connectionRate) 一天内连接数平均值 / 最大允许连接数 * 100%。 警告 70%<=connectionRate<=80% 1 危险 connectionRate>80% 3 流量使用率(FlowRate) 一天内流量的平均数/最大流量 * 100%。 警告 80%<=FlowRate<=85%(包含inFlow和outFlow) 1 危险 flowRate>85% 3 危险 iopsUsage>90% 5 热键(HotKey) 出现HotKey的信息。 存在 存在 3 慢SQL数量(slowSqlCount) 一天内产生的慢SQL总条数,点击后可查看执行次数Top5的慢SQL。 存在 0<slowSqlCount<100 1+(slowSqlCount-10)/30 警告 100<=slowSqlCount<500 4+(slowSqlCount-100)/30 危险 slowSqlCount>=500 min[18+(slowSqlCount-50)/30, 30)] 内存碎片率(HighMemoryFragment) 内存碎片率的计算方式为:mem_fragmentation_ratio=used_memory_rss/used_memory - used_memory_rss ,表示操作系统实际分配给Redis的物理内存空间,里面包含了内存碎片。
- used_memory,表示Redis为了保存数据实际申请使用的内存空间。
Redis内存碎片和Redis内存碎片率的更多信息,请参见Redis内存碎片。
存在 HighMemoryFragment>1.5 min(HighMemoryFragment*2, 5)