Multi-Cluster弹性模型
Interactive型资源组支持Multi-Cluster弹性模型。Multi-Cluster弹性模型由一个或者多个Cluster组成,可根据资源组的负载自动进行资源扩缩容,满足资源组内部的资源隔离和高并发场景。
前提条件
集群的产品系列为企业版、基础版或湖仓版。
集群的内核版本需为3.1.10.0及以上。
说明请在云原生数据仓库AnalyticDB MySQL控制台集群信息页面的配置信息区域,查看和升级内核版本。
什么是Multi-Cluster资源组
未开启Multi-Cluster功能时,一个资源组仅有一个Cluster执行查询。当查询任务提交到资源组时,这些查询共享资源组的所有计算资源。如果资源组中运行的查询过多,会发生资源争抢,影响查询速度。如果资源组的查询并发数达到上限,查询将会排队。
Multi-Cluster资源组由一个或者多个Cluster组成。通过静态或者动态申请Cluster资源来应对变化的负载。接入节点收到用户查询后,通过负载均衡调度,将查询分配给资源组的不同Cluster执行。不同Cluster的查询相互独立,互不影响。如下图所示。
Multi-Cluster资源组适合改善中小查询的并发度,减少查询的资源争抢问题,但并不会提高慢查询和ETL任务的速度。
开启Multi-Cluster的优势
对于未开启Multi-Cluster的资源组,当查询负载不断增长,该资源组的计算资源无法满足业务需求时,您需要手动进行以下操作:
手动调整资源组的资源量来满足业务需求。
当大查询和小查询发生了资源争抢,影响了小查询的响应速度时,您需要将大查询投递到其他资源组。
当查询负载下降之后,资源组计算资源有冗余时,手动缩容资源组的资源量以节省成本。
对于开启了Multi-Cluster模式的资源组,同一个资源组由多个相同规格的Cluster组成。将为您带来以下优势:
在Multi-Cluster弹性模式下,您无需因为查询负载抖动而手动调整资源组的大小。AnalyticDB for MySQL会自动根据查询负载调整Cluster个数。
在Multi-Cluster最大值模式情况下,您可以通过调整Cluster个数来控制资源组的计算资源总量。
资源组内部的Cluster是相互隔离的,大查询只会影响所在的Cluster,不会影响其余Cluster中的查询。
注意事项
Multi-Cluster模型仅适用于Interactive类型资源组。
内核版本3.1.10.0之前创建的资源组不支持开启Multi-Cluster模型。如果您需要使用Multi-Cluster弹性模型,请新建Interactive型资源组。
湖仓版集群的Interactive型资源组不支持同时使用Multi-Cluster模型(即资源组设置过Cluster最大值和Cluster最小值)和指定弹性计划(包括interactive型资源组弹性计划和存储加速服务(EIU)按比例默认弹性计划)。
费用说明
开启Multi-Cluster后,Interactive资源组的Cluster个数会弹性变化,并根据实际弹起的资源量(单Cluster规格*Cluster个数)收取弹性资源费用。详情请参见企业版、基础版产品定价和湖仓版产品定价。
开启Multi-Cluster功能
您可以在新建资源组时开启Multi-Cluster,或通过修改已有资源组的配置为已有资源组开启Multi-Cluster。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,单击目标集群ID。
在左侧导航栏,单击
,切换到资源组管理页签。在资源组管理页面,单击新增资源组或找到目标资源组单击修改。
确认任务类型为Interactive,开启Multi-Cluster,并配置如下相关参数。
参数名称
说明
引擎
选择XIHE或者Spark。
XIHE引擎:该资源组仅支持执行XIHE SQL。
Spark引擎:该资源组仅支持执行Spark作业,且Spark作业会以交互式方式进行处理。
Cluster大小
单个Cluster的大小,即ACU数,可任意填写,最小为16 ACU。
若选择Spark引擎,您需要先了解Cluster大小与Spark Driver、Spark Executor规格映射关系,以便选择合适的Cluster大小。详情请参见附录:Cluster大小与Spark Driver和Spark Executor规格映射关系。
最小Cluster个数
资源组内至少需要维持的Cluster个数,需要小于等于最大Cluster个数,最小为1。
设置不同的最小Cluster个数和最大Cluster个数时, AnalyticDB for MySQL会根据资源组的查询负载在设定的最小Cluster个数和最大Cluster个数之间进行动态地扩缩容。
指定相同的最小Cluster个数和最大Cluster个数时,AnalyticDB for MySQL在资源组创建成功后就会启动指定的Cluster个数,有效地静态控制资源组的计算资源总量。
最大Cluster个数
Cluster个数可以扩容到的最大值,最大为10。
设置不同的最小Cluster个数和最大Cluster个数时, AnalyticDB for MySQL会根据资源组的查询负载在设定的最小Cluster个数和最大Cluster个数之间进行动态地扩缩容。
指定相同的最小Cluster个数和最大Cluster个数时,AnalyticDB for MySQL在资源组创建成功后就会启动指定的Cluster个数,有效地静态控制资源组的计算资源总量。
Spark配置
Spark应用配置参数,应用于该资源组执行的所有Spark作业。如需为某个Spark作业单独配置参数,可以在提交作业时通过代码设置。
说明引擎为Spark引擎时,支持配置该参数。
单击确定,开启Multi-Cluster功能。
开启Multi-Cluster功能后,资源组管理页签可以查看Multi-Cluster资源组最小、最大和正在运行的Cluster个数,同时操作列的监控选项中还可以查看详细的资源组相关指标。
修改最大和最小Cluster个数的影响
当您变更最大和最小Cluster个数时,对当前运行的Cluster个数的影响如下。
当最小Cluster个数和最大Cluster个数不同时:
增加最大Cluster个数:增加Cluster个数上限。在负载满足要求之前,Cluster当前运行个数不会发生变化。
减少最大Cluster个数:如果此时正在运行的Cluster个数大于修改后的最大Cluster个数,新的查询将不会发送到多余的Cluster中,等到多余Cluster上的查询执行完毕后,减少运行的Cluster。
增加最小Cluster个数:立即创建新的Cluster,直至满足指定的最小Cluster个数。
减少最小Cluster个数: 如果此时正在运行的Cluster个数大于修改后的最小Cluster个数,AnalyticDB for MySQL会在5分钟时间窗口内持续监控您的查询负载,直至您的负载符合减少条件时,才会减少至您配置的最小Cluster个数。
当最小Cluster个数和最大Cluster个数相同时:
增加最大Cluster个数和最小Cluster个数:直接增加Cluster个数到您设置的最大Cluster个数。
减少最大Cluster个数和最小Cluster个数:新的查询将不会发送到多余的Cluster中,等到多余Cluster上的查询执行完毕后,减少Cluster。
附录:Cluster大小与Spark Driver和Spark Executor规格映射关系
选择不同的Spark资源规格内存比时,所启动的Spark Driver和Spark Executor规格、数量将有所不同。您可以在开启Multi-Cluster功能时,在Spark配置中添加spark.adb.warehouse.instance.spec
参数,以设置Spark Driver和Spark Executor规格的CPU内存比。
spark.adb.warehouse.instance.spec
参数的取值如下:
MEMORY(默认值):使用CPU内存比为
1:8
的Spark Driver和Spark Executor。GENERAL:使用CPU内存比为
1:4
的Spark Driver和Spark Executor。COMPUTE:使用CPU内存比为
1:2
的Spark Driver和Spark Executor。
Cluster大小与Spark Driver和Spark Executor规格映射列表如下:
Cluster大小 | MEMORY(内存比1:8) | GENERAL(内存比1:4) | COMPUTE(内存比1:2) | |||
Spark Driver规格 | Spark Executor规格 | Spark Driver规格 | Spark Executor规格 | Spark Driver规格 | Spark Executor规格 | |
16ACU(3X-Small) | 4 Core 32 GB | 3 x 2 Core 16 GB | 4 Core 16 GB | 3 x 4 Core 16 GB | 4 Core 8 GB | 4 x 4 Core 8 GB |
24ACU(2X-Small) | 8 Core 64 GB | 1 x 8 Core 64 GB | 8 Core 32 GB | 4 x 4 Core 16 GB | 8 Core 16 GB | 11 x 2 Core 4 GB |
36ACU(X-Small) | 8 Core 64 GB | 2 x 8 Core 64 GB | 8 Core 32 GB | 7 x 4 Core 16 GB | 8 Core 16 GB | 18 x 2 Core 4 GB |
72ACU(Small) | 16 Core 128 GB | 4 x 8 Core 64 GB | 16 Core 64 GB | 7 x 8 Core 32 GB | 16 Core 32 GB | 37 x 2 Core 4 GB |
144ACU(Medium) | 16 Core 128 GB | 10 x 8 Core 64 GB | 16 Core 64 GB | 16 x 8 Core 32 GB | 16 Core 32 GB | 41 x 4 Core 8 GB |
240ACU(Large) | 16 Core 128 GB | 9 x 16 Core 128 GB | 16 Core 64 GB | 28 x 8 Core 32 GB | 16 Core 32 GB | 71 x 4 Core 8 GB |
360ACU | 16 Core 128 GB | 14 x 16 Core 128 GB | 16 Core 64 GB | 43 x 8 Core 32 GB | 16 Core 32 GB | 54 x 8 Core 16 GB |
480ACU(X-Large) | 32 Core 256 GB | 18 x 16 Core 128 GB | 32 Core 128 GB | 56 x 8 Core 32 GB | 32 Core 64 GB | 71 x 8 Core 16 GB |
864ACU(2X-Large) | 64 Core 512 GB | 32 x 16 Core 128 GB | 32 Core 128 GB | 52 x 16 Core 64 GB | 32 Core 64 GB | 131 x 8 Core 16 GB |