关于typescript:浅谈MaxCompute资源规划管理及评估
简介: 本文次要介绍如何进行MaxCompute存储资源和计算资源的评估及布局治理。 一、MaxCompute资源布局背景介绍MaxCompute资源次要有两类:存储资源、计算资源(蕴含cpu和内存)。存储资源用于存储MaxCompute的库表数据,计算资源用于运行sql、mr等工作。最佳的MaxCompute资源布局计划可能达到以下几个目标:• 数据存储资源足够,既可能存储以后的所有存量库表数据,也可能存储将来一段时间的增量数据;• 计算资源短缺,然而不能节约。计算资源量可能满足所有数据计算工作,且尽可能减少资源节约状况。这样消耗的资源费用起码;• 被解决的数据量微小、消耗计算资源较多的大型工作,可能会将quota group资源组耗尽,造成其余工作无奈获取到计算资源而阻塞。MaxCompute资源布局计划必须可能尽量避免这种状况;• 不同优先级的计算工作可能尽量互不烦扰,无限保障高优先级的工作获取到足够计算资源;• 可能满足时段的差异化资源需要,满足对资源隔离(生产/开发/自助剖析)不同工作负载的能力,防止互相烦扰,同时更大化进步资源使用率。MaxCompute资源布局的最终目标就是可能满足上述几点需要,企业客户耗费最低资源费用的状况下,满足数据存储需要,以及数据处理工作对计算资源的需要。本文内容次要基于阿里私有云MaxCompute环境。私有云和专有云环境的MaxCompute资源布局有比拟大的差别,比方:在私有云环境,存储资源和计算资源是应用整个阿里云区域的资源池,简直不必放心底层到底有多少台服务器进行撑持,能够近乎认为私有云底层的资源池是有限的;然而在专有云环境,整个专有云都是企业客户独享的资源,必须依据存储资源和计算资源量布局服务器数量&&服务器规格。本文次要探讨私有云MaxCompute的资源布局。 二、MaxCompute存储资源布局2.1 计存比在介绍存储计划抉择之前,先说一个罕用的概念:“计存比”。计存比就是计算CU数量和理论存储数量TB的比值。比方资源分配:50CU计算资源,存储数据量是10TB。那么,50CU/10TB=5,计存比=5。 2.2 存储资源布局倡议对于存储资源,MaxCompute提供两种计费形式:• 按量付费:MaxCompute以小时级别采集每个我的项目空间下以后的存储,并以 project 我的项目空间为根本单位,计算我的项目空间当天的存储平均值。而后再乘以单价(元/GB/天),最初的失去每天的存储费用。 • 套餐资源:MaxCompute包年包月套餐蕴含预留的计算资源和存储资源,每种套餐固定计算资源CU量和存储资源。套餐中的存储资源是指每天固定的存储资源,超过的局部另外按量计费。套餐资源目前只反对固定的几个套餐,见下图所示: 阿里云提供的第二种计划,三种套餐的计存比是固定的,而且计存比都在1左右。这种固定资源套餐的计存比偏低,适宜存储量大、计算工作较少的企业客户。固定资源套餐的计算资源CU量是固定的,无奈应答计算资源需求量猛增的状况。比方企业平时的数据批量解决工作能够失常运行,在双11、618等大促流动期间的数据批量解决工作就会呈现重大阻塞。对于存储资源布局,笔者倡议:• 当预估企业客户将来一段时间的数据存储总量比拟大(100TB以上)、计算工作少(计存比小于1.5),抉择阿里云的固定套餐资源;• 当客户须要更加灵便的存储资源空间,同时计算资源CU量不受存储空间限度,倡议抉择按量付费形式。应用多少存储空间,耗费多少存储费用。至于计算资源CU布局,依照企业客户的理论需要,独自进行布局。 三、MaxCompute计算资源布局3.1 MaxCompute计算资源简介对于计算资源布局,笔者首先倡议:在我的项目测试阶段,全副都采纳按量付费形式。因为开发测试阶段,耗费的计算资源CU数量不多,采纳按量付费形式更加便宜。对于MaxCompute计算资源按量付费的计费规定,读者能够具体参考官网文档:https://help.aliyun.com/document_detail/112752.html我的项目开发实现,正式进入到上线阶段,倡议购买包年包月的计算资源CU配额,因为是固定的CU配额,不会在阿里云公共计算资源池去抢占计算资源,能够顺利地为企业客户预留足够的CU资源。计费形式如下所示: 本章节次要介绍我的项目上线之后,如何购买适合的包年包月固定CU数量。对于计算资源布局,本文介绍在我的项目实际中罕用的两种计划:办法1:依照以往教训先确定计存比,而后预估数据容量,最初失去计算计算资源CU量;办法2:抉择在我的项目正式上线前、或者在我的项目正式上线运行一小段时间之后,评估计算资源CU耗费的CPU总时长,而后再依据不同工作独自耗费的CPU时长、工作的优先级、企业客户要求每天所有工作必须在哪个时间段运行实现,综合思考这几个因素,最初失去计算资源CU量的最小最大值,用数学表达式示意就是: 本文分两个章节别离介绍这两种罕用的计算资源预估办法。 3.2依照计存比办法预估计算资源第一步:评估存储容量依照3年我的项目周期计算:存储容量 = 以后数据存量 + 每月预估数据增量*月数。以后数据存量很容易失去,在数据上云实现之后就能够失去以后数据存量。每月预估数据增量须要在数据上云之后两三个月,依据增量总值除以月数,失去每月预估增量平均值。当然,如果还要思考将来数据中台承载更多业务、每月数据增量会变大等因素,能够将以后计算失去的每月预估数据增量值乘以倍数。倡议每半年预估一次存储总容量,而后每半年调整一次计算资源CU量。第二步:预预计存比依照我的项目开发测试阶段、以及上线运行一两个月的状况,能够大略预预计存比。依据理论状况,计存比个别配置2-10。如果客户每天运行的数据批量解决工作很多,且sql程序计算复杂度高,计存比能够抉择10;如果客户每天运行的数据批量解决工作比拟少,且sql程序计算复杂度不高,计算比能够抉择2;如果客户每天运行的数据批量解决工作适中,sql程序计算复杂度也适中,计存比能够抉择2-10之间的适合值。倡议每半年评估一次计存比,而后每半年调整一次计算资源CU量。第三步:预估计算资源CU量依照第一步预估的每半年存储资源总量,联合每半年评估的计存比值,存储资源总量 *计存比 = 计算资源CU总量。 预估失去计算资源CU总量,进而每半年利用该企业主账号调整一次MaxCompute计算资源CU总量。依照计存比预估企业我的项目须要耗费的计算资源CU总量,有很多须要预估的变量,包含数据存储总量、计存比,很可能预估不精确。因而,该办法要求我的项目的技术负责人领有较多的我的项目施行教训,可能在每一步预估都尽可能精确。 3.3依照我的项目理论耗费CU量进行资源划分抉择在我的项目正式上线前、或者在我的项目正式上线运行一小段时间之后,评估计算资源CU耗费的CPU总时长,而后再依据不同工作独自耗费的CPU时长、工作的优先级、企业客户要求每天所有工作必须在哪个时间段运行实现,综合思考这几个因素,最初失去计算资源耗费费用起码的最佳CU数量。 3.3.1查看计算资源耗费状况在进行资源布局之前,须要首先搞清楚过来一段时间MaxCompute计算资源的耗费状况。读者能够参考https://help.aliyun.com/document_detail/135432.html具体介绍如何开明和查看MaxCompute的information_schema信息。MaxCompute元数据表有很多,本文只须要利用到一张表:TASKS_HISTORY。这张元数据表记录了所有MaxCompute 计算工作的资源耗费状况。读者能够参考 https://help.aliyun.com/document_detail/135433.html#title-r2c-tak-zfi具体介绍元数据表TASKS_HISTORY的字段信息,其中最重要的字段信息是:cost_cpu 和 cost_mem,别离示意: 本文次要借助CPU消耗量(也就是上图的cost_cpu字段对应的每个工作耗费的cpu数量)进行计算资源CU数量的布局。须要留神的是,cost_cpu字段的含意:MaxCompute计算工作作业的CPU消耗量。100示意1 cores,比方官网的例子:10 core运行5s,cost_cpu为10100*5=5000)。那么cost_cpu字段示意的是“cpu核数消耗量 100 工作运行工夫秒”。因为cost_cpu依照秒统计,对于理论我的项目评估太过于精密,咱们通常将cost_cpu 除以 100、而后再除以3600,失去cores h (cpu核数 小时)。这样不便评估理论我的项目在规定时间段内运行完所有工作须要quota group资源组的起码计算资源CU数量。如下如所示某个MaxCompute project 的MaxCompute计算工作的资源耗费状况: 3.3.2 布局计算资源CU数量通过3.3.1章节的内容,咱们能够查看到MaxCompute project某一天运行的所有计算工作耗费的CPU核数*小时。计算资源CU数量布局的细则:Step1:首先,计算失去均匀每天运行所有工作耗费的cost_cpu总和(须要除以100,能力失去真正的cpu核数 秒,而后再除以 3600,失去耗费的 “cpu核数 小时”)。举个例子:MaxCompute project均匀每天须要运行1000个工作,这些工作耗费的cost_cpu别离是 W1、W2 …… W1000。那么须要将W1 + W2+ …… + W1000 失去每天运行所有工作耗费的cost_cpu总和Wz。留神:数据中台个别会划分6个MaxCompute project,别离是:• ods_dev:贴源层开发测试project;• ods_prod:贴源层生产project;• cdm_dev:公共层开发测试project;• cdm_prod:公共层生产project;• ads_dev:应用层开发测试project;• ads_prod:应用层生产project;须要将这6个MaxCompute project的所有数据计算工作的cost_cpu相加失去cost_cpu总和Wz。当然,大部分读者应用MaxCompute进行数据处理,并非须要建设数据中台。任何须要应用MaxCompute进行数据处理的利用场景,都能够依照理论划分的MaxCompute project,将这些MaxCompute project涵盖的所有数据处理工作耗费的cost_cpu相加失去总和Wz。Step2:依照上述介绍的阿里云官网详情介绍,cost_cpu须要除以100才是真正耗费的CPU核数。同时,cost_cpu依照秒进行度量,咱们个别会依照小时进行度量。因而,须要将cost_cpu总和Wz除以100、再除以3600,最初失去均匀每天运行所有工作耗费 “cpu核数 *小时”,本文假如这个值为W。Step3:征询客户数据批量解决工作须要在每天的哪些时间段运行实现。举个例子:客户要求在深夜零点之后、凌晨6点之前必须将所有数据批量解决工作运行实现。那么每天可能运行的总时长都是6个小时。本文假如所有工作必须在N个小时运行实现。Step4:利用上述失去的每天所有工作[cpu核数 *小时 / 工作运行时长N个小时],就能够失去该客户的MaxCompute project须要调配的计算资源CU数量的最小值:W/N。W/N的前提是数据处理工作的cost_cpu很稳固,而且在这N个小时内,所有工作都随时在运行,不存在任何闲暇的工夫。然而,理论我的项目可能会因为某些起因导致数据计算工作运行工夫缩短(比方参加计算的数据量减少),相当于W会变大;同时,因为DataWorks/Dataphin调度工作还会产生很多延迟时间、工作获取CU资源也会耽搁很多工夫,这部分延迟时间会加大工作之间运行的工夫距离,真正用于运行工作的工夫会小于N。W/N的分母理论变大、分子理论变小,进而变相地要求减少计算资源,以便让工作获取更多资源进而运行地更加疾速。因而个别状况下,会在上述失去的W/N后果根底上增加一倍。依照上述4个步骤,能够预估计算失去企业能够须要购买的CU数量。 ...