Multi-Cluster弹性模型

更新时间:

Interactive型资源组支持Multi-Cluster弹性模型。Multi-Cluster弹性模型由一个或者多个Cluster组成,可根据资源组的负载自动进行资源扩缩容,满足资源组内部的资源隔离和高并发场景。

前提条件

  • 集群的产品系列为企业版、基础版或湖仓版

  • 集群的内核版本需为3.1.10.0及以上。

    说明

    查看企业版基础版湖仓版集群的内核版本,请执行SELECT adb_version();。如需升级内核版本,请联系技术支持。

什么是Multi-Cluster资源组

未开启Multi-Cluster功能时,一个资源组仅有一个Cluster执行查询。当查询任务提交到资源组时,这些查询共享资源组的所有计算资源。如果资源组中运行的查询过多,会发生资源争抢,影响查询速度。如果资源组的查询并发数达到上限,查询将会排队。

Multi-Cluster资源组由一个或者多个Cluster组成。通过静态或者动态申请Cluster资源来应对变化的负载。接入节点收到用户查询后,通过负载均衡调度,将查询分配给资源组的不同Cluster执行。不同Cluster的查询相互独立,互不影响。如下图所示。image.png

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功能。

费用说明

开启Multi-Cluster后,Interactive资源组的Cluster个数会弹性变化,并根据实际弹起的资源量(单Cluster规格*Cluster个数)收取弹性资源费用。详情请参见企业版和基础版产品定价湖仓版产品定价

开启Multi-Cluster功能

您可以在新建资源组时开启Multi-Cluster,或通过修改已有资源组的配置为已有资源组开启Multi-Cluster。

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击集群管理 > 资源管理,切换到资源组管理页签。

  3. 资源组管理页面,单击新增资源组或找到目标资源组单击修改

  4. 确认任务类型为Interactive,开启Multi-Cluster,并配置如下相关参数。

    参数名称

    说明

    引擎

    选择XIHE或者Spark

    • XIHE引擎:该资源组仅支持执行XIHE SQL。

    • Spark引擎:该资源组仅支持执行Spark作业,且Spark作业会以交互式方式进行处理。

      重要

      该功能目前在邀测中,如需使用,请加入钉钉群 (群号:33600023146)联系技术开启。

    Cluster大小

    单个Cluster的大小,即ACU数,可任意填写,最小为16 ACU。

    最小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个数,有效地静态控制资源组的计算资源总量。

  5. 单击确定,开启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规格映射关系

Cluster大小

Spark Driver规格

Spark Executor规格

24 ACU

8 Core 64 GB

1 x 8 Core 64 GB

36 ACU

8 Core 64 GB

2 x 8 Core 64 GB

72 ACU

16 Core 128 GB

4 x 8 Core 64 GB

144 ACU

16 Core 128 GB

10 x 8 Core 64 GB

240 ACU

16 Core 128 GB

9 x 16 Core 128 GB

360 ACU

16 Core 128 GB

14 x 16 Core 128 GB

480 ACU

32 Core 256 GB

18 x 16 Core 128GB

864 ACU

32 Core 256 GB

34 x 16 Core 128GB

1632 ACU

64 Core 512 GB

64 x 16 Core 128 GB

3168 ACU

64 Core 512 GB

128 x 16 Core 128 GB