数据库自治服务DAS(Database Autonomy Service)提供巡检评分功能,每天定时对所有数据库实例进行巡检评分,并且支持自主选择数据库实例和巡检时段,手动发起巡检评分,帮助您了解数据库实例的运行情况。

前提条件

  • 目标数据库实例如下:
    • RDS MySQL
    • 自建MySQL
    • PolarDB MySQL版
    • MyBase MySQL
    • 云数据库Redis
    • MyBase Redis
  • 目标数据库实例已接入DAS,并且接入状态显示为连接正常,接入方法详情请参见接入阿里云数据库实例

开启巡检评分

  1. 登录 DAS控制台
  2. 在左侧导航栏,单击巡检评分
  3. 在实例巡检评分页根据如下操作设置实例巡检评分。
    • 开启自动巡检评分:
      1. 单击右上角的设置
      2. 在弹出的设置巡检评分功能的对话框中选中引擎,然后单击确定,开启巡检评分功能。ss
        说明 开启自动巡检评分功能后,系统会对连接正常的实例每天进行一次评分。
    • 手动发起巡检评分:
      1. 单击发起巡检
      2. 在弹出的巡检实例对话框中,在选择应用的实例区域选择单个或多个目标实例,单击选择
      3. 选择巡检时间区域,设置巡检时间。
        说明 巡检时间不能晚于当前时间,且巡检开始时间和巡检结束时间的间隔最小为1小时,最长为24小时。
      4. 单击确认手动巡检

查看巡检评分结果

开启巡检评分后,您可根据实例ID实例别名进行搜索,查看不同时间范围的巡检评分结果。
说明 巡检评分实行百分制,系统会根据评分规则对实例运行情况进行扣分,具体请参见评分规则表
  • 单击目标实例操作列的删除,删除该条巡检评分结果。
  • 单击目标实例操作列的扣分详情,查看该实例的扣分详情表。
  • 单击目标实例操作列的报告,查看该实例的评分报告详情表。
  • 单击目标实例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<=3015-availableDays/3
    大表数量
    重要 PolarDB MySQL版不进行大表分析,不支持此扣分项。
    bigTableCount>0min(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<1001+(slowSqlCount-10)/30
    警告100<=slowSqlCount<5004+(slowSqlCount-100)/30
    危险slowSqlCount>=500min[18+(slowSqlCount-50)/30, 30)]
    SQL安全审计(sqlInjectionCount)风险SQL数量和SQL注入数量。风险SQLriskSqlCount>0min(riskSqlCount,5)
    SQL注入sqlInjectionCount>0min(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<1001+(slowSqlCount-10)/30
    警告100<=slowSqlCount<5004+(slowSqlCount-100)/30
    危险slowSqlCount>=500min[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.5min(HighMemoryFragment*2, 5)

相关API

GetInstanceInspections