ablog

不器用で落着きのない技術者のメモ

Redshift でワークロードキュー毎のクエリ同時実行数を確認する

クラスター全体での実行中とキュー待ちのクエリ数
  • マネジメントコンソールで[Redshift]-[クラスターを選択]-[クエリのモニタリング]-[ワークロードの同時実行]
    • オレンジ色:実行中のクエリ数
    • 青色:ワークロードキュー待ちのクエリ数


「キューに入れられたクエリとクラスターでのクエリの実行」に表示される、オレンジ色と青色のバーが見て取れます。
オレンジ色が実行中のクエリで、青色がキューに入っているもののそのまま動いていない、云わば「待たされている」クエリです。つまり、青色が多いということはキューが詰まっているということになります。

Manual WLM モードの Redshift クラスターで Concurrency Scaling 有効化や同時実行数のチューニングを行った運用知見と注意点について - サーバーワークスエンジニアブログ
ワークロードキュー別の実行中とキュー待ちのクエリ数
  • [CloudWatch メトリクス]-[Redshift]-[ClusterIdentifier,wlmid]
    • WLMRunningQueries:WLM毎のクエリ同時実行数
    • WLMQueueWaitTime:WLM毎のキューでの待ち時間

左軸に、WLMRunningQueries として実行中のクエリがカウントされていますが、これが「メインでの同時実行」=「13」という設定で頭打ちしていることがわかります。

Queue 2 WLMQueueWaitTime を右軸に追加して確認してみると、待ち時間が増え続けていることがわかります。つまり、BI ツールの処理は「クエリが流れるよりもクエリが増える速度の方が早く Queue が積み上がり続けている」状態になってしまっています。

Manual WLM モードの Redshift クラスターで Concurrency Scaling 有効化や同時実行数のチューニングを行った運用知見と注意点について - サーバーワークスエンジニアブログ
同時実行スケーリング(Concurrency Scaling) で追加されたクラスター数の確認
  • [CloudWatchメトリクス]-[Redshift]-[クラスター別の集計]-[ConcurrencyScalingActiveClusters]

以下のメトリクスで同時実行スケーリングの状態が確認できます。

  • ConcurrencyScalingActiveClusters

Manual WLM モードの Redshift クラスターで Concurrency Scaling 有効化や同時実行数のチューニングを行った運用知見と注意点について - サーバーワークスエンジニアブログ
手動WLMでは1クラスターでの最大クエリ同時実行数は50

ワークロード管理において、各 Queue で同時実行可能な最大数を事前に規定します。
それぞれの Queue ごとに設定可能な最大数は 50 で、またそれぞれの Queue の同時実行数合計も 50 までである必要があります。

手動 WLM を使用した場合、Amazon Redshift は、同時実行レベルが 5 (最大 5 個のクエリを同時実行) のキューを 1 つと、同時実行レベルが 1 の定義済みスーパーユーザーキューを 1 つ設定します。最大で 8 個のキューを定義できます。各キューの同時実行レベルは最大で 50 に設定できます。すべてのユーザー定義キュー (スーパーユーザーキューは含みません) の同時実行レベルの合計の最大値は 50 です。

ワークロード管理 - Amazon Redshift
Manual WLM モードの Redshift クラスターで Concurrency Scaling 有効化や同時実行数のチューニングを行った運用知見と注意点について - サーバーワークスエンジニアブログ

参考

WLMRunningQueries
WLM キューごとのメインクラスターと同時実行スケーリングクラスターの両方から実行されているクエリの数。
単位: 個
ディメンション: ClusterIdentifier, wlmid
ディメンション: ClusterIdentifier、QueueName

CloudWatch メトリクスを使用した Amazon Redshift のモニタリング - Amazon Redshift