Database Autonomy Service (DAS) scores the health of your database instances on a 100-point scale. Points are deducted when specific conditions are met. This topic describes the scoring items, deduction conditions, and formulas used by the inspection and scoring feature.
Usage notes
To view inspection and scoring results, enable the inspection and scoring feature first. For more information, see Inspection and scoring.
View scores for each instance in the console. For more information, see Inspection and scoring.
Scoring rules
ApsaraDB RDS for MySQL, self-managed MySQL, and PolarDB for MySQL
Resource utilization
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| CPU utilization (cpuUsage) | Average CPU utilization during a day. For multi-core instances, the system calculates the utilization of each core and then averages the results. | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Major | 70% ≤ cpuUsage ≤ 80% | 1 + (cpuUsage − 0.7) × 20 |
| CPU utilization (cpuUsage) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Critical | cpuUsage ≥ 80% | min[3 + (cpuUsage − 0.8) × 30, 10] | |
| Memory usage (memUsage) | Average memory usage during a day. | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Major | 80% ≤ memUsage ≤ 90% | 1 + (memUsage − 0.8) × 20 |
| Memory usage (memUsage) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Critical | memUsage > 90% | min[(memUsage − 0.9) × 50, 10] | |
| Space usage | Storage usage = Average used storage during a day / Total storage × 100% | ApsaraDB RDS for MySQL, PolarDB for MySQL | Available days | availableDays ≤ 30 | 15 − availableDays/3 |
| Connection usage (connectionRate) | Connection usage = Average number of connections during a day / Maximum number of connections allowed × 100% | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Major | 70% ≤ connectionRate ≤ 80% | 1 |
| Connection usage (connectionRate) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Critical | connectionRate > 80% | 3 | |
| IOPS usage (iopsUsage) | IOPS usage = Average IOPS during a day / Maximum IOPS allowed × 100% | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Major | 70% < iopsUsage < 90% | 3 |
| IOPS usage (iopsUsage) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Critical | iopsUsage > 90% | 5 |
Performance
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| Active sessions (threadRunning) | Number of active sessions generated in one day. | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Major | threadRunning > min(2 × cpuCores + 8, 64) | 3 |
| Active sessions (threadRunning) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Critical | threadRunning > min(4 × cpuCores + 8, 96) | 9 | |
| Slow SQL statements (slowSqlCount) | Number of slow SQL statements generated in one day. Click the number to view the five most frequently executed slow SQL statements. | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Minor | 0 < slowSqlCount < 100 | 1 + (slowSqlCount − 10)/30 |
| Slow SQL statements (slowSqlCount) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Major | 100 ≤ slowSqlCount < 500 | 4 + (slowSqlCount − 100)/30 | |
| Slow SQL statements (slowSqlCount) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Critical | slowSqlCount ≥ 500 | min[18 + (slowSqlCount − 50)/30, 30] | |
| Large tables | Number of tables that occupy more than 50 GB of space, including fragments. | ApsaraDB RDS for MySQL, self-managed MySQL | — | bigTableCount > 0 | min(bigTableCount, 15) |
Security
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| SQL security audit (sqlInjectionCount) | Number of high-risk SQL statements and SQL injection attacks detected in one day. | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | High-risk SQL statements | riskSqlCount > 0 | min(riskSqlCount, 5) |
| SQL security audit (sqlInjectionCount) | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | SQL injection | sqlInjectionCount > 0 | min(sqlInjectionCount, 5) |
Availability
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| Deadlock | Whether a deadlock occurred during a day. | ApsaraDB RDS for MySQL, self-managed MySQL, PolarDB for MySQL | Minor | A deadlock occurred | 3 |
Redis
Resource utilization
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| CPU utilization (cpuUsage) | Average CPU utilization during a day. For multi-core instances, the system calculates the utilization of each core and then averages the results. | Redis | Major | 70% ≤ cpuUsage ≤ 80% | 1 + (cpuUsage − 0.7) × 20 |
| CPU utilization (cpuUsage) | Redis | Critical | cpuUsage ≥ 80% | min[3 + (cpuUsage − 0.8) × 30, 10] | |
| Memory usage (memUsage) | Average memory usage during a day. | Redis | Major | 80% ≤ memUsage ≤ 90% | 1 + (memUsage − 0.8) × 20 |
| Memory usage (memUsage) | Redis | Critical | memUsage > 90% | min[(memUsage − 0.9) × 50, 10] | |
| Connection usage (connectionRate) | Connection usage = Average number of connections during a day / Maximum number of connections allowed × 100% | Redis | Major | 70% ≤ connectionRate ≤ 80% | 1 |
| Connection usage (connectionRate) | Redis | Critical | connectionRate > 80% | 3 | |
| Traffic usage (FlowRate) | Traffic usage = Average traffic during a day / Maximum traffic allowed × 100%. Both inbound and outbound traffic count. | Redis | Major | 80% ≤ FlowRate ≤ 85% | 1 |
| Traffic usage (FlowRate) | Redis | Critical | FlowRate > 85% | 3 |
Performance
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| Slow SQL statements (slowSqlCount) | Total number of slow SQL statements generated in one day. Click the number to view the five most frequently executed slow SQL statements. | Redis | Minor | 0 < slowSqlCount < 100 | 1 + (slowSqlCount − 10)/30 |
| Slow SQL statements (slowSqlCount) | Redis | Major | 100 ≤ slowSqlCount < 500 | 4 + (slowSqlCount − 100)/30 | |
| Slow SQL statements (slowSqlCount) | Redis | Critical | slowSqlCount ≥ 500 | min[18 + (slowSqlCount − 50)/30, 30] |
Availability
| Item | Description | Applies to | Sub-item | Condition | Deducted points |
|---|---|---|---|---|---|
| Hot keys (HotKey) | Hot key information is detected. | Redis | Minor | Hot keys detected | 3 |
| Memory fragmentation ratio (HighMemoryFragment) | mem_fragmentation_ratio = used_memory_rss / used_memory, where used_memory_rss is the physical memory the operating system allocates to Redis (including memory fragments), and used_memory is the memory Redis requests to store data. For more information, see Memory fragmentation. | Redis | Minor | HighMemoryFragment > 1.5 | min(HighMemoryFragment × 2, 5) |