浅谈 MaxCompute 资源规划管理及评估

一、MaxCompute资源规划背景介绍MaxCompute资源主要有两类:存储资源、计算资源(包含cpu和内存) 。 存储资源用于存储MaxCompute的库表数据 , 计算资源用于运行sql、mr等任务 。 最佳的MaxCompute资源规划方案能够达到以下几个目的:

  • 数据存储资源足够 , 既能够存储当前的所有存量库表数据 , 也能够存储未来一段时间的增量数据;
  • 计算资源充足 , 但是不能浪费 。 计算资源量能够满足所有数据计算任务 , 且尽可能减少资源浪费情况 。 这样耗费的资源费用最少;
  • 被处理的数据量巨大、耗费计算资源较多的大型任务 , 可能会将quota group资源组耗尽 , 造成其他任务无法获取到计算资源而阻塞 。 MaxCompute资源规划方案必须能够尽量避免这种情况;
  • 不同优先级的计算任务能够尽量互不干扰 , 优先保证高优先级的任务获取到足够计算资源;
  • 能够满足时段的差异化资源需求 , 满足对资源隔离(生产/开发/自助分析)不同工作负载的能力 , 避免相互干扰 , 同时更大化提高资源使用率 。
MaxCompute资源规划的最终目标就是能够满足上述几点需求 , 企业客户消耗最低资源费用的情况下 , 满足数据存储需求 , 以及数据处理任务对计算资源的需求 。
本文内容主要基于阿里公有云MaxCompute环境 。 公有云和专有云环境的MaxCompute资源规划有比较大的差异 , 比如:在公有云环境 , 存储资源和计算资源是使用整个阿里云区域的资源池 , 几乎不用担心底层到底有多少台服务器进行支撑 , 可以近乎认为公有云底层的资源池是无限的;但是在专有云环境 , 整个专有云都是企业客户独享的资源 , 必须根据存储资源和计算资源量规划服务器数量">当预估企业客户未来一段时间的数据存储总量比较大(100TB以上)、计算任务少(计存比小于1.5) , 选择阿里云的固定套餐资源;
  • 当客户需要更加灵活的存储资源空间 , 同时计算资源CU量不受存储空间限制 , 建议选择按量付费方式 。 使用多少存储空间 , 消耗多少存储费用 。 至于计算资源CU规划 , 按照企业客户的实际需求 , 单独进行规划 。
  • 三、MaxCompute计算资源规划3.1 MaxCompute计算资源简介
    对于计算资源规划 , 笔者首先建议:在项目测试阶段 , 全部都采用按量付费方式 。 因为开发测试阶段 , 消耗的计算资源CU数量不多 , 采用按量付费方式更加便宜 。 关于MaxCompute计算资源按量付费的计费规则 。
    项目开发完成 , 正式进入到上线阶段 , 建议购买包年包月的计算资源CU配额 , 因为是固定的CU配额 , 不会在阿里云公共计算资源池去抢占计算资源 , 可以顺利地为企业客户预留足够的CU资源 。 计费方式如下所示:
    浅谈 MaxCompute 资源规划管理及评估文章插图
    本章节主要介绍项目上线之后 , 如何购买合适的包年包月固定CU数量 。 对于计算资源规划 , 本文介绍在项目实践中常用的两种方案:
    方法1:按照以往经验先确定计存比 , 然后预估数据容量 , 最后得到计算计算资源CU量;
    方法2:选择在项目正式上线前、或者在项目正式上线运行一小段时间之后 , 评估计算资源CU消耗的CPU总时长 , 然后再根据不同任务单独消耗的CPU时长、任务的优先级、企业客户要求每天所有任务必须在哪个时间段运行完成 , 综合考虑这几个因素 , 最后得到计算资源CU量的最小最大值 , 用数学表达式表示就是:
    浅谈 MaxCompute 资源规划管理及评估文章插图
    本文分两个章节分别介绍这两种常用的计算资源预估方法 。