WLM 动态内存分配
在每个队列中,WLM 创建与队列的并发级别相等的查询槽数目。分配到查询槽的内存量等于分配到队列的内存百分比除以槽数。如果您更改内存分配或并发性,Amazon Redshift 会动态管理转变到新 WLM 配置的过程。因此,活动的查询可以使用当前分配的内存量运行直至完成。与此同时,Amazon Redshift 确保总内存使用率不超过可用内存的 100%。
工作负载管理器使用下面的流程管理过渡:
-
WLM 重新计算针对每个新查询槽的内存分配。
-
如果正在运行的查询未主动使用某个查询槽,则 WLM 删除该槽,使这些内存可供新的槽使用。
-
如果主动使用某个查询槽,则 WLM 等待查询完成。
-
活动查询完成后,会删除空槽,释放关联的内存。
-
因为有充足的内存可供添加一个或多个槽,所以会添加新的槽。
-
发生更改时正在运行的所有查询完成之后,槽数等于新的并发级别,完成到新的 WLM 配置的过渡。
实际上,发生更改时正在运行的查询将继续使用原始内存分配。对于发生更改时排队中的查询,当有新的槽可用时将路由到这些槽。
如果 WLM 动态属性在过渡期间发生更改,则 WLM 立即开始过渡到新的配置(从当前状态开始)。要查看过渡的状态,请查询 STV_WLM_SERVICE_CLASS_CONFIG 系统表。