工作负载管理 - Amazon Redshift

工作负载管理

本节介绍工作负载管理(WLM),该功能有助于您了解 Amazon Redshift 是如何准备并运行查询的。

利用 Amazon Redshift 工作负载管理(WLM)可以灵活地管理工作负载中的优先级,以便时间较短的、快速运行的查询在队列中不会被长时间运行的查询阻碍。Amazon Redshift 在运行时根据服务类创建查询队列,这将定义各种类型的队列的配置参数,包括内部系统队列和用户可访问的队列。从用户的角度看,用户可访问的服务类和队列在功能上是相同的。为了保持一致,本文档使用队列 一词来表示用户可访问的服务类以及运行时队列。

Redshift 提供简称为自动 WLM 的自动工作负载管理功能,该功能经过优化,可用于处理各种各样的工作负载,并且是推荐的默认设置。借助自动 WLM,Redshift 可在查询到达时确定资源利用率,并动态确定是在主集群或并发扩展集群上运行查询,还是将每个查询发送到队列。(当查询排队时,自动 WLM 会优先考虑持续时间较短的查询。) 自动 WLM 可尽最大可能提高总吞吐量,使您能够维护高效的数据仓库资源。这样您在运行工作负载时,就不必担心工作负载的大小或调度方式。自动 WLM 是预置集群的默认设置。有关更多信息,请参阅实施自动 WLM

注意

Amazon Redshift Serverless 工作组始终使用自动 WLM。

在运行大量查询或资源密集型查询时,如果本地资源上有工作负载在排队,工作负载管理可以进行扩展来使用额外的计算资源。采用自动 WLM 的并发扩展可以实现稳定的性能,支持几乎无限的并发用户和并发查询。

如果您需要精细的手动优化,Redshift 预置集群提供了手动 WLM。在这种模式下,客户负责管理资源分配、查询并发度和排队。查询运行时,WLM 会根据用户的用户组或通过匹配在队列配置中列出的查询组,来将查询分配给队列。此配置通过用户设置的查询组标签来进行。有关更多信息,请参阅实施手动 WLM

尽管在使用过程中,手动 WLM 可以进行微调以匹配您的工作负载模式,但在大多数情况下,我们并不建议使用该模式,因为这是一种静态模式,使您难于适应一天或更长时间段中不断变化的工作负载。它需要更多的监控并持续调整。此外,在许多情况下,手动 WLM 使用计算资源的效率不如自动 WLM,例如将队列设置为手动以限制分配给队列的内存时。

衡量工作负载管理配置成功与否的一个重要指标是系统吞吐量,也就是成功完成的查询数量。系统吞吐量的衡量指标是每秒查询次数。有关更多信息,请参阅监控 Amazon Redshift 集群性能

管理 WLM 配置的最简单方法是使用 Amazon Redshift 管理控制台。您还可使用 Amazon Redshift 命令行界面(CLI)或 Amazon Redshift API。有关实施和使用工作负载管理的更多信息,请参阅实施工作负载管理