工作負載管理 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

工作負載管理

您可以將 Amazon Redshift WLM 設定為使用自動或WLM手動 執行WLM。

透過 Amazon Redshift,您可以管理和排定並行查詢和使用者工作負載的優先順序,以最佳化效能和資源使用率。工作負載管理 (WLM) 可讓您定義佇列、使用者群組和其他建構,以控制配置給不同類型查詢或使用者的資源。

下列各節概述 Amazon Redshift 中的特定工作負載管理功能,並引導您完成其組態和監控。

自動 WLM

若要最大化系統輸送量並有效使用資源,您可以讓 Amazon Redshift 管理資源的分割方式,以使用自動 執行並行查詢WLM。自動WLM管理執行查詢所需的資源。Amazon Redshift 會決定多少個查詢並行執行和分配多少記憶體給每個分派的查詢。當您想要 Amazon Redshift 管理資源的分割方式以執行並行查詢WLM時,請使用 Auto。如需詳細資訊,請參閱實作自動 WLM

使用並行擴展和自動 WLM,您可以支援幾乎無限制的並行使用者和並行查詢,同時具有一致的快速查詢效能。如需詳細資訊,請參閱並行擴展

注意

在大多數情況下,我們建議您使用自動 WLM。如果您使用的是手動,WLM而且想要從 遷移至自動 WLM,請參閱 從手動遷移WLM至自動 WLM

使用 Auto WLM,可以為佇列中的工作負載定義查詢優先順序。如需查詢優先順序的相關資訊,請參閱 查詢優先順序

手動 WLM

您可能有多個工作階段或使用者同時執行查詢。有些查詢可能會長時間使用叢集資源,並影響其他查詢的效能。手動WLM可協助管理特殊使用案例。當您想要對並行進行更多控制WLM時,請使用 手動。

您可以修改WLM組態來為長時間執行的查詢和短時間執行的查詢建立個別佇列,藉此管理系統效能。在執行時間,您可以根據使用者群組或查詢群組,將查詢路由至這些佇列。

您可以設定規則,以根據執行查詢的使用者,或您指定的標籤,將查詢路由至特定的佇列。您也可以設定要配置給每個佇列的記憶體數量,讓大型查詢在記憶體較多的佇列中執行。您也可以設定查詢監控規則 (QMR),以限制長時間執行的查詢。如需詳細資訊,請參閱實作手冊 WLM

注意

我們建議您設定手動WLM查詢佇列,總共有 15 個或更少的查詢插槽。如需詳細資訊,請參閱並行層級

請注意,對於手動WLM組態,您可以配置給佇列的插槽上限為 50 個。不過,這並不表示在自動WLM組態中,Amazon Redshift 叢集一律會同時執行 50 個查詢。這可能會根據叢集上的記憶體需求或其他類型的資源配置而變更。

切換WLM模式

您可以使用 Amazon Redshift WLM 主控台啟用自動或手動:

  1. 選擇 切換WLM模式

  2. 若要將其設定為自動 WLM,請選擇自動 WLM。使用此選擇時,最多使用八個佇列來管理查詢,而且 Memory (記憶體)Concurrency on main (主要叢集的並行) 欄位都設為 Auto (自動)。此外,查詢的預設優先順序會設定為 Normal

  3. 若要使用 Amazon Redshift 主控台啟用手動組態,請切換到手動 WLM。使用此選擇時,請指定用來管理查詢的佇列,以及 Memory (記憶體)Concurrency on main (主要叢集的並行) 欄位值。使用手動組態時,您最多可以設定八個查詢佇列,並設定每個佇列中可同時執行的查詢數。

修改WLM組態

修改WLM組態的最簡單方法是使用 Amazon Redshift 主控台。您也可以使用 AWS CLI 或 Amazon Redshift API。

當您在自動和手動 之間切換叢集時WLM,您的叢集會進入 pending reboot 狀態。變更要在下次叢集重新啟動後才會生效。

如需修改WLM組態的詳細資訊,請參閱 Amazon Redshift 管理指南中的設定工作負載管理。

從手動遷移WLM至自動 WLM

若要最大化系統輸送量並最有效地使用資源,建議您WLM為佇列設定自動。考慮採取下列方法,設定從手動順利轉換WLM至自動 WLM。

若要從手動遷移WLM至自動WLM並使用查詢優先順序,建議您建立新的參數群組,然後將該參數群組連接至叢集。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的 Amazon Redshift 參數群組

重要

若要變更參數群組或從手動切換到自動,WLM需要重新開機叢集。如需詳細資訊,請參閱WLM 動態和靜態組態屬性

讓我們舉一個範例,其中有三個手動WLM佇列。每個ETL工作負載、分析工作負載和資料科學工作負載各一個。ETL 工作負載每 6 小時執行一次,分析工作負載會全天執行一次,而資料科學工作負載可能會隨時飆升。使用手動 時WLM,您可以根據您了解每個工作負載對業務的重要性,指定每個工作負載佇列取得的記憶體和並行。指定記憶體和並行不僅很難釐清,也會導致叢集資源被靜態分割,因而在僅執行一部分工作負載時造成浪費。

您可以使用自動WLM查詢優先順序來指示工作負載的相對優先順序,避免上述問題。對於這個範例,請依照下列步驟進行:

  • 建立新的參數群組並切換至自動WLM模式。

  • 新增三種工作負載的佇列:ETL工作負載、分析工作負載和資料科學工作負載。針對與手動WLM模式搭配使用的每個工作負載使用相同的使用者群組。

  • 將ETL工作負載的優先順序設定為 High,將分析工作負載設定為 Normal,將資料科學設定為 Low。這些優先順序反映了不同工作負載或使用者群組的業務優先順序。

  • 或者,為分析或資料科學佇列啟用並行擴展,以便即使ETL工作負載每 6 小時執行一次,這些佇列中的查詢也能獲得一致的效能。

運用查詢優先順序,當只有分析工作負載在叢集上執行時,它可取得整個系統。這可以產生高輸送量和最佳的系統使用率 不過,當ETL工作負載開始時,它就有方向權,因為其優先順序較高。作為ETL工作負載一部分執行的查詢在入院期間除了優先資源配置之外,還會在入院後獲得優先權。因此,無論系統上執行的其他項目為何,ETL工作負載都會有可預測的執行。高優先順序工作負載能獲得可預測的效能,代價是其他較低優先順序工作負載的執行時間更久,因為它們的查詢要等候較重要的查詢先完成;或者,當它們與較高優先順序的查詢同時執行時,所獲得的資源較少。Amazon Redshift 所用的排程演算法可使較低優先順序的查詢不會面臨資源耗盡,而是持續取得進展,只是速度較慢而已。

注意
  • 自動 中無法使用逾時欄位WLM。反之,請使用QMR規則 query_execution_time。如需詳細資訊,請參閱WLM 查詢監控規則

  • QMR 動作 HOP不適用於自動 WLM。請改用 change priority 動作。如需詳細資訊,請參閱WLM 查詢監控規則

  • 叢集使用自動WLM和手動WLM佇列的方式不同,這可能會導致您的組態混淆。例如,您可以在自動WLM佇列中設定優先順序屬性,但無法在手動WLM佇列中設定。因此,請避免在參數群組中混合自動WLM佇列和手動WLM佇列。請改為在遷移至自動 時建立新的參數群組WLM。