MaxCompute资源管理—— 包年包月资源组隔离

概述

使用基于MaxCompute云数据仓库的企业,由于业务的差异,会创建多project进行数据隔离。同时也因为业务的差异,每个project需要跑的任务量、业务紧急程度等也有差异,因此不同project对计算资源的需求也不一致。本文我们一起探讨如何通过MaxCompute管家实现MaxCompute包年包月的资源隔离。

背景信息

  • 默认预付费Quota:购买包年包月计算资源后,默认创建的配额组,该配额组不支持修改;升级或降配时,对应的CU量都在这个配额组中进行增减。
  • 管家中支持创建配额组(自定义配额组),自定义的配额组里预留CU的最小值和非预留CU的值将从默认配额组对应的值里进行扣减。
  • 所有配额组预留CU的最小值相加等于购买的预留CU量;所有配额组的非预留CU值相加等于购买的非预留CU量。
  • 配额组中,预留CU的最小和最大值分别代表:

    • 最小值:保障值。
    • 最大值:可使用的最大值(最大可设置为购买的预留CU量)。当有多个配额组且配置了最小值<最大值是,一旦有配额组资源为空闲的时候,则可以占用。

      >当有配额组最小值<最大值 时,说明配额组是有可能会抢占其他配额组空闲资源,因此会导致所有配额组都是共享(当前账号当前region范围)资源组。
      

使用案例

需求背景
公司使用到MaxComput进行大数据开发、分析、挖掘的业务大致为:数仓开发和生产、运营分析需求、算法挖掘。因而也创建了不同的project进行数据业务划分,project业务特点如下:

  • 数仓project,分开发和生产,且按数仓模型分层划分project。
  • 运营分析project,主要提供给业务部分进行日常数据分析取数,根据业务部分需求建不同部门专用project。
  • 算法挖掘,分开发和生产,根据作业周期特点划分project。

根据前期业务评估当前购买的计算资源为预留CU量1000CU,非预留CU量600CU。现在需要将这些计算资源合理的进行隔离分配,以便能最大化提升资源使用率。

资源划分
资源划分可参考几个注意点:

  • 高保障project主要配预留CU,非预留CU可作为加持资源。
  • 预留CU最小值要根据实际配置避免滥用。
  • 对于非高保障,优先级也不高但是会有可能请求大量资源的项目,对应配额组的最大值建议控制范围,影响以免其他资源组资源。
  • 平均占用资源时间较长的考虑隔离独立配额组,同时最大值建议控制范围。
  • 对时效性要求不高,资源占用频率高可以考虑非预留CU。
  • 可根据实际情况结合资源分时功能。
  • 因为默认配额组不可修改包括CU最大值,若不想让某些项目发起的任务可能会占用所有的CU量,那么可以考虑默认配额组不关联项目。由于默认配额组预留CU最小值不能为0,则可以留1CU,然后其他配额组里配置预留CU最小值<最大值,则其他配额组也依然能占用这1CU。

配额组设计如下:
MaxCompute资源管理—— 包年包月资源组隔离
MaxCompute资源管理—— 包年包月资源组隔离
综上所述,因为考虑到业务特点,配额组的预留CU最大值都进行了限制,避免严重影响其他配额组的最低保障值。在MaxCompute管家上进行配额组设计管理时,按上述表格,默认配额组不能关联项目,但预留CU最小值又必须大于0,可以选择保留1CU,可以选择上述数仓开发项目最小CU值减1。具体配置步骤如下:

  1. 先进行分时设置,把配额分为00:00:00-09:00:00、09:00:00-23:59:59 两个时段。
  2. 再分别新增配额组,设置 数仓生产、数仓开发、运营、算法相关配额组。
  3. 最后分别将项目关联对应的配额组,默认配额组不关联项目。

总结

随着业务变化,配额组的划分也会可能需要随之变化,所以有必要随时监控配额组的使用情况,以便及时对配额组进行调整。关于配额组监控,您可以通过云监控的"MaxCompute-包年包月Quota组资源"指标进行监控,详情请参考文档j监控告警
另外,您还可以结合MaxCompute更多的资源管理功能如包年包月项目任务使用按量付费资源包年包月项目任务优先级进行更精细的资源管理。

上一篇:Linux动态链接库加载失败一例


下一篇:.NET中的异步编程- IO完“.NET技术”成端口以及FileStream.BeginRead