# 使用集群前必读：性能管理要求
DWS数据库系统的性能管理在整个系统中起着很关键的作用，为了避免集群频繁出现资源（CPU、I/O、内存、磁盘空间等）过载情况，需要对集群内的业务和整体资源进行设限和管控，并定期进行主动运维，提前进行扩容规划等。
例如，在新业务上线前，需要对现有资源进行评估和压测，防止新业务上线后占用大量资源影响集群整体性能。后期随着存量业务数据量的增长，集群磁盘空间和I/O使用也会逐渐增加，需要定期进行老化数据和脏数据的清理。
本章节主要介绍集群性能基线，为用户和运维人员介绍常见业务场景下的性能管理要求，提前评估集群容量，防止集群出现资源过载。
#### DWS集群性能基线
本节主要介绍DWS各项资源的**推荐值** 和**风险值。**
当**集群资源水位超过推荐值**后，运维人员需要及时介入处理，防止节点异常、主备切换等故障场景下的性能降级。
当**集群资源水位超过风险值**后，集群会有很高的过载风险，应禁止继续上线新业务。
此时，需要通过业务优化或错峰调度等手段尽快降低集群整体负载，必要时可以进行集群拆分或扩容防止影响整体性能。
表1集群性能容量风险和建议 
| 性能指标       | 建议值      | 超过建议值的影响                                                        | 推荐措施                                                                                                                                                                                                                                                                                                                                  | 风险值       | 超过风险值的影响                                     | 推荐措施                                                                                                                                                                                 |
|:---|:---|:---|:---|:---|:---|:---|
| CPU使用率     | 60%以下       | 在主备非均衡或集群"节点故障"状态下，部分节点的CPU使用率有过载风险，引发性能降级。                    | 建议配置资源池进行资源隔离，参考[DWS资源负载管理](https://support.huaweicloud.com/mgtg-dws/dws_01_0723.html)。通过[查看DWS实时SQL记录](https://support.huaweicloud.com/mgtg-dws/dws_01_1334.html)和[查看DWS集群性能指标](https://support.huaweicloud.com/mgtg-dws/dws_01_1337.html)抓取高CPU语句进行业务优化，参见[监控并诊断DWS集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0036.html)。 | 80%      | 出现严重的CPU争抢，导致Stream等算子执行时间劣化，集群整体性能受到严重影响。    | 通过业务错峰、业务拆分、业务优化、集群扩容等手段降低高峰期CPU负载。 也可以设置资源池CPU限额与配额，参见[高CPU系统调优方案](https://support.huaweicloud.com/trouble-dws/dws_09_0112.html)。    |
| CPU倾斜率   | 15%以下     | 出现计算倾斜，导致部分语句无法充分发挥分布式下的最佳性能。                               | 建议通过[设置DWS异常规则](https://support.huaweicloud.com/mgtg-dws/dws_01_72367.html)、配置熔断参数等手段对倾斜语句提前熔断；日常对此类业务进行优化整改。                                                                                                                                                                                                                      | 30%   | 高峰期容易出现单节点CPU过载，木桶效应导致集群整体劣化，无法充分发挥其他节点性能。 | 建议通过[设置DWS异常规则](https://support.huaweicloud.com/mgtg-dws/dws_01_72367.html)、配置熔断参数等手段对倾斜语句提前熔断；日常对此类业务进行优化整改。                                                                       |
| I/O使用率  | 60%以下    | 在主备非均衡或集群"节点故障"状态下，部分节点的I/O使用率有过载风险，引发性能降级，易出现非均衡状态下的I/O过载。 | 参考[查看DWS集群性能指标](https://support.huaweicloud.com/mgtg-dws/dws_01_1337.html)抓取I/O高的业务，通过索引、分区剪枝、行列存整改等常用方法，降低磁盘I/O使用率。 参见[降低IO的处理方案](https://support.huaweicloud.com/trouble-dws/dws_09_0111.html)。                                                                                     | 90%       | 出现比较严重的I/O争抢，导致表扫描等算子执行时间劣化，集群整体性能受到影响。      | 建议对高I/O语句优化和错峰保证I/O性能，提前规划集群扩容减少单节点I/O吞吐量。                                                                                                                                             |
| I/O读写时延 | 400ms以下 | 进行数据读写时性能出现波动，查询时间不稳定，出现偶发性能劣化。                             | 参考[查看DWS集群性能指标](https://support.huaweicloud.com/mgtg-dws/dws_01_1337.html)抓取I/O高的业务，通过索引、分区剪枝、行列存整改等常用方法，降低磁盘I/O使用率，读写时延会随之降低。 参见[降低IO的处理方案](https://support.huaweicloud.com/trouble-dws/dws_09_0111.html)。                                                                            | 1000ms | 数据读写性能明显劣化，实时入库业务出现积压，整体性能出现劣化。              | 建议对高I/O语句、高下盘语句、高并发语句进行优化整改，进行业务错峰和业务拆分。                                                                                                                                            |
| 动态内存使用率  | 80%以下      | 当业务流量突增或复杂灵活查询执行时，会有内存不足报错的风险。                               | 配置异常规则和内存熔断；对高内存业务进行优化整改；参考[查看DWS实时SQL记录](https://support.huaweicloud.com/mgtg-dws/dws_01_1334.html)和[监控并诊断DWS集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0036.html)进行业务优化。 降内存方法可参见[降低内存的处理方案](https://support.huaweicloud.com/trouble-dws/dws_09_0113.html)。                  | 90%     | 出现CCN排队，业务出现内存不足报错，有进程OOM风险。                 | 配置异常规则和内存熔断；对高内存业务进行优化整改；参考[查看DWS实时SQL记录](https://support.huaweicloud.com/mgtg-dws/dws_01_1334.html)和[监控并诊断DWS集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0036.html)进行业务优化。 |
| 磁盘空间使用率   | 70%以下 | SQL下盘量较大，磁盘使用率超过90%时，有只读风险。                                  | 配置触发下盘量阈值，低峰期进行数据清理和脏页清理，提前进行扩容规划。 警告： **当磁盘空间使用率超过70%时，会有数据膨胀老化导致备份失败的风险，请及时安排磁盘扩容或节点扩容**。 更多可参见[磁盘使用率高处理方案](https://support.huaweicloud.com/trouble-dws/dws_09_0031.html)。                                                         | 80%     | 出现SQL下盘后只读风险增加。                            | 配置触发下盘量阈值，低峰期进行数据清理和脏页清理，提前进行扩容规划。                                                                                                                                                 |
| 磁盘空间倾斜率  | 15%以下    | 引发算子计算/数据下盘倾斜严重，导致不同DN的处理压力不同，影响业务性能，并容易造成单DN磁盘使用率过高。        | 参考[统计与诊断DWS数据表](https://support.huaweicloud.com/mgtg-dws/dws_01_01752.html)进行排查并进行表倾斜处理。                                                                                                                                                                                                                                           | 20%   | 磁盘倾斜引发CPU、I/O、内存倾斜，影响集群整体性能，容易造成单DN磁盘满。     | 参考[统计与诊断DWS数据表](https://support.huaweicloud.com/mgtg-dws/dws_01_01752.html)进行表倾斜处理。                                                                                               |
   
#### DWS常见性能管理场景和建议
本节主要介绍常见的性能管理场景和建议手段，在业务上线和日常运维过程中，应当对性能容量进行充分评估，防止集群出现性能过载。
表2常见性能管理场景 
| 常见场景    | 性能风险                                                          | 评估手段                                                                                                         | 建议措施                                                                                                         |
|:---|:---|:---|:---|
| 新集群上线    | 新集群在业务上线前的性能容量未知，有性能不达标风险。                                    | 需在业务上线前对集群进行充分压力测试，新老集群双轨运行至少一个业务周期，关键业务/链路的QPS、时延、最大并发量、最大响应时间等性能指标能够得到充分测试，从而确保新集群的性能容量能够得到充分评估。             | 参考[DWS资源负载管理](https://support.huaweicloud.com/mgtg-dws/dws_01_0723.html)配置动态资源管理并划分业务资源池，提前配置异常规则，配置熔断参数。     |
| 新业务上线   | 与集群现有业务出现资源争抢，新业务并发、资源消耗不合理时容易造成资源过载导致整体性能劣化。              | 新业务在测试环境得到充分测试，根据测试结果预估CPU消耗、执行时间、业务并发量等指标，分析新业务执行计划，确保执行计划最优。                                               | 当集群性能容量超过风险值时，应禁止新业务上线；当性能容量较为充裕时，新业务应通过资源池进行资源隔离，根据测试结果配置合理的熔断参数，并准备回退方案，确保出现问题后可快速回退。                      |
| 灵活查询性能管理 | 灵活查询的SQL类型多样，执行效率和资源消耗差异很大，极端情况下可能会出现某一个"慢SQL"将整个集群性能拖垮的情况。 | 可根据[查看DWS实时SQL记录](https://support.huaweicloud.com/mgtg-dws/dws_01_1334.html)统计灵活查询的CPU消耗、内存消耗、执行时间、并发量等信息。 | 灵活查询用户应划分到独立于其他业务的资源池内，并进行CPU、内存等资源限制，并配置异常规则和熔断策略，及时拦截"慢SQL"，同时，建议遵循权限最小化原则，限制灵活查询用户的权限，禁止管理员用户作为灵活查询用户主账号。 |
| 存量业务增长    | 存量业务的数据量、并发量等持续增长，会造成集群资源使用率越来越高，不及时治理有过载风险。                 | 定期统计存量业务的脏数据、倾斜率、ANALYZE时间、分区个数、资源消耗情况等指标。                                                                  | 每周对集群进行定期巡检，定期对脏页率高的表进行脏数据清理，对统计信息不及时的表及时ANALYZE。                                                               |
   
