WLM 动态内存分配 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

WLM 动态内存分配

在每个队列中,WLM 创建与队列的并发级别相等的查询槽数目。分配到查询槽的内存量等于分配到队列的内存百分比除以槽数。如果您更改内存分配或并发性,Amazon Redshift 会动态管理转变到新 WLM 配置的过程。因此,活动的查询可以使用当前分配的内存量运行直至完成。与此同时,Amazon Redshift 确保总内存使用率不超过可用内存的 100%。

工作负载管理器使用下面的流程管理过渡:

  1. WLM 重新计算针对每个新查询槽的内存分配。

  2. 如果正在运行的查询未主动使用某个查询槽,则 WLM 删除该槽,使这些内存可供新的槽使用。

  3. 如果主动使用某个查询槽,则 WLM 等待查询完成。

  4. 活动查询完成后,会删除空槽,释放关联的内存。

  5. 因为有充足的内存可供添加一个或多个槽,所以会添加新的槽。

  6. 发生更改时正在运行的所有查询完成之后,槽数等于新的并发级别,完成到新的 WLM 配置的过渡。

实际上,发生更改时正在运行的查询将继续使用原始内存分配。对于发生更改时排队中的查询,当有新的槽可用时将路由到这些槽。

如果 WLM 动态属性在过渡期间发生更改,则 WLM 立即开始过渡到新的配置(从当前状态开始)。要查看过渡的状态,请查询 STV_WLM_SERVICE_CLASS_CONFIG 系统表。