實作工作負載管理 - Amazon Redshift

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

實作工作負載管理

您可以使用工作負載管理 (WLM) 來定義多個查詢佇列,並於執行時間將查詢路由至適當的佇列。

在某些情況下,您可能有多個工作階段或使用者在同時執行查詢。在這些情況下,某些查詢可能長時間佔用叢集資源,而影響其他查詢的效能。例如,假設有一群使用者偶而會提交複雜、長期執行的查詢,這些查詢會從數個大型資料表選取資料列並加以排序。另一群經常提交短期查詢,而這些查詢只從一個或兩個資料表選取少數幾列,且只會執行幾秒鐘。在此情況下,短期執行的查詢可能必須在佇列中等待長期執行的查詢完成。WLM 可協助管理這種情況。

您可以將 Amazon Redshift WLM 設定成以自動 WLM 或手動 WLM 來執行。

自動 WLM

若要最大化系統輸送量並有效使用資源,您可讓 Amazon Redshift 以自動 WLM 管理如何分配資源來執行並行查詢。自動 WLM 會管理執行查詢所需的資源。Amazon Redshift 會決定多少個查詢並行執行和分配多少記憶體給每個分派的查詢。您可以在 Amazon Redshift 主控台選擇切換 WLM 模式,然後選擇自動 WLM,以啟用自動 WLM。使用此選擇時,最多使用八個佇列來管理查詢,而且 Memory (記憶體)Concurrency on main (主要叢集的並行) 欄位都設為 Auto (自動)。您可以指定優先順序來反映對應到每個佇列之工作負載或使用者的優先順序。查詢的預設優先順序設定為 Normal (一般)。如需如何變更佇列中查詢優先順序的相關資訊,請參閱查詢優先順序。如需詳細資訊,請參閱 實作自動 WLM

在執行時間,您可以根據使用者群組或查詢群組,將查詢路由至這些佇列。您也可以設定一個查詢監控規則 (QMR) 來限制長時間執行查詢。

使用並行擴展和自動 WLM,您可以藉由持續的快速查詢效能,支援幾乎無限的並行使用者和並行查詢。如需詳細資訊,請參閱 使用並行擴展

注意

我們建議您建立參數群組並選擇自動 WLM 來管理查詢資源。如需如何從手動 WLM 遷移至自動 WLM 的詳細資訊,請參閱從手動 WLM 遷移至自動 WLM

手動 WLM

或者,您可以修改 WLM 組態來為長期執行的查詢和短期執行的查詢建立個別的佇列,以管理系統效能和改善使用者的感受。在執行時間,您可以根據使用者群組或查詢群組,將查詢路由至這些佇列。您可以在 Amazon Redshift 主控台切換到手動 WLM,以啟用此手動組態。使用此選擇時,請指定用來管理查詢的佇列,以及 Memory (記憶體)Concurrency on main (主要叢集的並行) 欄位值。使用手動組態時,您最多可以設定八個查詢佇列,並設定每個佇列中可同時執行的查詢數。

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

注意

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

WLM 佇列限制

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

自動 WLM 和手動 WLM 的使用案例

當您希望 Amazon Redshift 管理資源分割方式以執行並行查詢時,請使用自動 WLM。使用自動 WLM 產生的輸送量通常會比手動 WLM 更高。使用自動 WLM,您可以為佇列中的工作負載定義查詢優先順序。如需查詢優先順序的相關資訊,請參閱 查詢優先順序

當您想要對並行操作進行更多控制時,請使用手動 WLM。