对于使用MaxCompute的企业,通常会根据业务的差异性来创建多个MaxCompute项目进行数据隔离。由于每个MaxCompute项目对计算资源(CU)的需求不一致,需要对CU按照项目进行隔离,以便实现CU使用率最大化。本文为您介绍如何通过MaxCompute管理控制台的配额(Quota)管理功能隔离MaxCompute包年包月CU。
背景信息
您可以通过MaxCompute管理控制台的配额(Quota)管理功能对购买的包年包月CU进行隔离。配额(Quota)管理支持的配额组如下:
默认预付费Quota:购买包年包月计算资源后,系统默认创建的配额组。该配额组不支持修改。升级或降配时,对应的CU量都在该配额组中进行增减。
自定义配额组:在自定义的配额组中,预留CU量[minCU,maxCU]中minCU的值将从默认预付费Quota配额组对应的值里进行扣减。maxCU可以设置为购买的预留CU量。其中:
minCU:为最小保障CU量。
maxCU:可使用的最大CU量。当有多个配额组且配置了minCU<maxCU时,一旦有配额组的CU处于空闲状态时,其他配额组可以占用空闲CU。该实现会导致所有配额组在当前账号当前区域内都是共享资源组。
所有配额组的minCU相加等于购买的预留CU量。
使用案例
场景
数据仓库团队使用MaxCompute进行开发、分析、挖掘的业务大致为:数据仓库开发和生产、运营分析需求、算法挖掘。基于不同的业务创建不同的MaxCompute项目:
数据仓库开发和生产:按照数据仓库模型分层划分MaxCompute项目,分为数据仓库开发项目和数据仓库生产项目。
运营分析需求:根据业务需求创建不同部门专用的MaxCompute项目,获取日常数据并进行分析。
算法挖掘:根据作业周期特点划分MaxCompute项目,分为算法开发项目和算法生产项目。
根据前期业务评估结果,购买的预留CU量为1000 CU。现在需要将这些CU合理地进行隔离分配,以便能最大化提升CU使用率。
划分CU
划分CU时,您可以关注如下内容:
预留CU量的minCU要根据实际配置避免滥用。
对于非高保障,优先级也不高但是可能请求大量CU的MaxCompute项目,建议控制对应配额组预留CU量的maxCU,以免影响其他配额组。
对于平均占用CU时间较长的MaxCompute项目可以设置独立配额组,同时控制对应配额组的预留CU量的maxCU。
您可以根据实际情况结合分时功能实现CU利用最大化。更多分时信息,请参见分时配置。
默认预付费Quota配额组不支持修改CU配额,如果您不希望出现某些项目发起的作业可能会占用所有CU量的情况,可以考虑默认预付费Quota配额组不关联项目。由于默认预付费Quota配额组预留CU量的minCU不能为0,可以保留1 CU,然后设置其他配额组中的minCU<maxCU,其他配额组依然能占用这1 CU。
设计配额组
配额组 | 特点 | 预留CU量的minCU | 预留CU量的maxCU | 关联项目 | 分时设置 |
数据仓库生产配额组 | 高保障,有较为突出的CU请求波峰时段,小时作业CU请求较平稳。 |
|
| 数据仓库生产项目 |
|
数据仓库开发配额组 | 高保障,有较为突出的CU请求波谷时段。 |
|
| 数据仓库开发项目 |
|
算法生产配额组 | 高保障,部分作业的CPU占用量较高且运行时间较长。 | 300 | 300 | 算法生产项目 | 00:00:00~23:59:59 |
算法开发配额组 | 高保障,部分作业的CPU占用量较高且运行时间较长。 | 50 | 50 | 算法开发项目 | 00:00:00~23:59:59 |
运营分析配额组 | 使用的人员多,需要一定的CU保障,有较为突出的CU请求波谷时段,会有一些大作业长时间占用资源。 |
|
| 运营分析项目 |
|
考虑到上述业务的特点,对应配额组预留CU量的maxCU都进行了限制,避免严重影响其他配额组的最低保障值。设计配额组时,默认预付费Quota配额组不关联MaxCompute项目,但预留CU量的minCU又必须大于0,可以保留1 CU,将数据仓库开发项目的minCU减1。
设置步骤
参考文档
随着业务的不断变化,配额组的划分也需要随之改变,所以您有必要随时监控配额组的使用情况,以便及时对配额组进行调整。您可以通过阿里云监控服务的MaxCompute-包年包月Quota组资源指标进行监控,详情请参见监控报警。
您还可以结合MaxCompute更多的资源管理功能实现更精细的资源管理,例如弹性预留CU最佳实践、计算资源使用和作业优先级。