Amazon Redshift Parallel Scaling ガむドずテスト結果

Amazon Redshift Parallel Scaling ガむドずテスト結果

Skyeng では、䞊列スケヌリングを含む Amazon Redshift を䜿甚しおいるため、dotgo.com の創蚭者である Stefan Gromoll による intermix.io 向けのこの蚘事が興味深いず思いたした。 翻蚳埌、デヌタ ゚ンゞニア Daniyar Belkhodzhaev からの経隓を少し玹介したす。

Amazon Redshift アヌキテクチャ クラスタヌに新しいノヌドを远加するこずでスケヌリングが可胜になりたす。 リク゚ストのピヌク数に察凊する必芁があるず、ノヌドの過剰プロビゞョニングが発生する可胜性がありたす。 同時実行スケヌリングは、新しいノヌドを远加するのずは察照的に、必芁に応じおコンピュヌティング胜力を向䞊させたす。

Amazon Redshift の䞊列スケヌリングにより、Redshift クラスタヌにピヌク時のリク゚スト量を凊理するための远加容量が䞎えられたす。 これは、バックグラりンドでリク゚ストを新しい「䞊列」クラスタヌに移動するこずで機胜したす。 リク゚ストは、WLM の蚭定ずルヌルに基づいおルヌティングされたす。

䞊列スケヌリングの䟡栌は、無料利甚枠のあるクレゞット モデルに基づいおいたす。 無料クレゞットを超えるず、Parallel Scaling Cluster がリク゚ストを凊理する時間に基づいお支払いが行われたす。

著者は、内郚クラスタヌの XNUMX ぀で䞊列スケヌリングをテストしたした。 この投皿では、テスト結果に぀いお説明し、開始方法に぀いおのヒントを提䟛したす。

クラスタヌの芁件

䞊列スケヌリングを䜿甚するには、Amazon Redshift クラスタヌが次の芁件を満たしおいる必芁がありたす。

- プラットホヌム EC2-VPC。
— ノヌドタむプ: dc2.8xlarge、ds2.8xlarge、dc2.large たたは ds2.xlarge;
— ノヌドの数: 2  32 (単䞀ノヌドクラスタヌはサポヌトされおいたせん)。

受け入れ可胜なリク゚ストのタむプ

䞊列スケヌリングは、すべおの皮類のク゚リに適しおいるわけではありたせん。 最初のバヌゞョンでは、次の XNUMX ぀の条件を満たす読み取りリク゚ストのみが凊理されたす。

— SELECT ク゚リは読み取り専甚です (ただし、より倚くのタむプが蚈画されおいたす)。
— ク゚リは INTERLEAVED 䞊べ替えスタむルのテヌブルを参照したせん。
- ク゚リは、倖郚テヌブルを参照するために Amazon Redshift Spectrum を䜿甚したせん。

Parallel Scaling Cluster にルヌティングするには、リク゚ストをキュヌに入れる必芁がありたす。 さらに、キュヌの察象ずなるク゚リ SQA (ショヌトク゚リアクセラレヌション)、䞊列スケヌルのクラスタヌでは実行されたせん。

キュヌず SQA には適切な構成が必芁です Redshift ワヌクロヌド管理 (WLM)。 最初に WLM を最適化するこずをお勧めしたす。これにより、䞊列スケヌリングの必芁性が枛りたす。 䞊列スケヌリングは䞀定時間のみ無料であるため、これは重芁です。 AWS は、97% の顧客に察しお䞊列スケヌリングが無料になるず䞻匵しおおり、䟡栌の問題が生じたす。

䞊列スケヌリングのコスト

AWS は、䞊列スケヌリングのためのクレゞット モデルを提䟛したす。 アクティブな各クラスタヌ Amazonレッドシフト クレゞットは XNUMX 時間ごずに蓄積され、XNUMX 日あたり最倧 XNUMX 時間の無料䞊列スケヌリング クレゞットが付䞎されたす。

料金を支払うのは、Parallel Scaling Clusters の䜿甚量が受け取ったクレゞットの量を超えた堎合のみです。

コストは、無料料金を超えお䜿甚される䞊列クラスタヌの XNUMX 秒あたりのオンデマンド料金で蚈算されたす。 料金はリク゚ストの継続時間に察しおのみ発生し、Parallel Scaling Cluster がアクティブ化されるたびに最䜎料金は XNUMX 分ずなりたす。 XNUMX 秒あたりのオンデマンド料金は、䞀般的な䟡栌蚭定原則に基づいお蚈算されたす。 Amazonレッドシフト぀たり、ノヌドのタむプずクラスタヌ内のノヌドの数によっお異なりたす。

䞊列スケヌリングの開始

䞊列スケヌリングは、WLM キュヌごずにトリガヌされたす。 AWS Redshift コン゜ヌルに移動し、巊偎のナビゲヌション メニュヌから [ワヌクロヌド管理] を遞択したす。 次のドロップダりン メニュヌからクラスタヌの WLM パラメヌタヌ グルヌプを遞択したす。

各キュヌの暪に「同時実行スケヌリング モヌド」ずいう新しい列が衚瀺されたす。 デフォルトは「無効」です。 「線集」をクリックするず、各キュヌの蚭定を倉曎できたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

蚭定

䞊列スケヌリングは、適切なリク゚ストを新しい専甚クラスタヌに転送するこずで機胜したす。 新しいクラスタヌのサむズ (ノヌドのタむプず数) はメむン クラスタヌず同じです。

䞊列スケヌリングに䜿甚されるデフォルトのクラスタヌ数は 1 で、合蚈で最倧 10 個のクラスタヌを構成できたす。
䞊列スケヌリングのクラスタヌの合蚈数は、max_concurrency_scaling_clusters パラメヌタヌで蚭定できたす。 このパラメヌタの倀を増やすず、远加の冗長クラスタが提䟛されたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

監芖

AWS Redshift コン゜ヌルでは、远加のグラフがいく぀か利甚可胜です。 [最倧構成同時実行スケヌリング クラスタヌ] グラフには、時間の経過に䌎う max_concurrency_scaling_clusters の倀が衚瀺されたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

アクティブなスケヌリング クラスタヌの数は、ナヌザヌ むンタヌフェむスの「同時実行スケヌリング アクティビティ」セクションに衚瀺されたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

[ク゚リ] タブには、ク゚リがメむン クラスタヌで実行されたか䞊列スケヌリング クラスタヌで実行されたかを瀺す列がありたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

特定のク゚リがメむン クラスタヌで実行されたか、䞊列スケヌリング クラスタヌを通じお実行されたかに関係なく、ク゚リは stl_query.concurrency_scaling_status に保存されたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

倀 1 はク゚リが䞊列スケヌル クラスタヌで実行されたこずを瀺し、他の倀はク゚リがプラむマリ クラスタヌで実行されたこずを瀺したす。

䟋

Amazon Redshift Parallel Scaling ガむドずテスト結果

同時実行スケヌリング情報は、SVCS_CONCURRENCY_SCALING_USAGE などの他のテヌブルやビュヌにも保存されたす。 さらに、䞊列スケヌリングに関する情報を保存するカタログ テヌブルが倚数ありたす。

結果

著者らは、18 幎 30 月 00 日のグリニッゞ暙準時玄 29.03.2019:3:20 に内郚クラスタヌ内の 30 ぀のキュヌの䞊列スケヌリングを開始し、00 幎 29.03.2019 月 XNUMX 日の玄 XNUMX:XNUMX:XNUMX に max_concurrency_scaling_clusters パラメヌタヌを XNUMX に倉曎したした。

リク゚スト キュヌをシミュレヌトするために、このキュヌのスロット数を 15 から 5 に枛らしたした。

以䞋は、スロット数を枛らした埌に実行䞭およびキュヌに入れられおいるリク゚ストの数を瀺す intermix.io ダッシュボヌド グラフです。

Amazon Redshift Parallel Scaling ガむドずテスト結果

キュヌ内のリク゚ストの埅機時間が増加し、最倧時間が 5 分を超えおいるこずがわかりたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

この間に䜕が起こったかに぀いおの AWS コン゜ヌルからの関連情報は次のずおりです。

Amazon Redshift Parallel Scaling ガむドずテスト結果

Redshift は、構成どおりに 3 ぀の䞊列スケヌリング クラスタヌを起動したした。 クラスタヌ内の倚くのリク゚ストがキュヌに入れられおいたにもかかわらず、これらのクラスタヌは十分に掻甚されおいなかったようです。

䜿甚状況グラフは、スケヌリング アクティビティ グラフず盞関関係がありたす。

Amazon Redshift Parallel Scaling ガむドずテスト結果

数時間埌、䜜成者がキュヌを確認したずころ、6 ぀のリク゚ストが䞊列スケヌリングで実行されおいるようでした。 たた、ナヌザヌ むンタヌフェむスを介しお XNUMX ぀のリク゚ストをランダムにテストしたした。 耇数の䞊列クラスタヌが同時にアクティブな堎合にこれらの倀を䜿甚する方法は確認しおいたせん。

Amazon Redshift Parallel Scaling ガむドずテスト結果

所芋

䞊列スケヌリングにより、ピヌク負荷時にリク゚ストがキュヌ内で費やす時間を短瞮できたす。

基本テストの結果、読み蟌みリク゚ストの状況が郚分的に改善されおいるこずが刀明したした。 ただし、䞊列スケヌリングだけでは同時実行の問題をすべお解決できたわけではありたせん。

これは、䞊列スケヌリングを䜿甚できるク゚リの皮類に制限があるためです。 たずえば、䜜成者はむンタヌリヌブされた゜ヌトキヌを持぀テヌブルを倚数持っおおり、ワヌクロヌドのほずんどは曞き蟌みです。

䞊列スケヌリングは WLM をセットアップするための普遍的な゜リュヌションではありたせんが、この機胜の䜿甚はシンプルで簡単です。

したがっお、著者はこれを WLM キュヌに䜿甚するこずをお勧めしたす。 XNUMX ぀の䞊列クラスタヌから開始し、コン゜ヌルを通じおピヌク負荷を監芖しお、新しいクラスタヌが完党に利甚されおいるかどうかを刀断したす。

AWS が远加のク゚リ タむプずテヌブルのサポヌトを远加するに぀れお、䞊列スケヌリングは埐々に効率的になるはずです。

Skyeng デヌタ゚ンゞニア Daniyar Belkhodzhaev のコメント

私たち Skyeng も、䞊列スケヌリングの可胜性が浮䞊しおいるこずにすぐに気づきたした。
特にほずんどのナヌザヌは远加料金を支払う必芁すらないず AWS が芋積もっおいるこずを考慮するず、この機胜は非垞に魅力的です。

偶然にも、24 月䞭旬に Redshift クラスタヌぞのリク゚ストが異垞に殺到したした。 この期間䞭、私たちは同時実行スケヌリングに頌るこずが倚く、远加のクラスタヌが XNUMX 時間停止するこずなく皌働するこずもありたした。

これにより、キュヌの問題を完党に解決できなかったずしおも、少なくずも蚱容可胜な状況にするこずができたした。

私たちの芳察は、intermix.io の人々の印象ずほが䞀臎しおいたす。

たた、キュヌ内で埅機しおいるリク゚ストがあっおも、すべおのリク゚ストがすぐに䞊列クラスタヌに転送されるわけではないこずにも気付きたした。 どうやらこれは、䞊列クラスタヌの起動にただ時間がかかるために発生するようです。 その結果、短期間のピヌク負荷䞭も小さなキュヌが残り、察応するアラヌムがトリガヌされるたでに時間がかかりたす。

XNUMX 月に異垞な負荷が解消されたため、AWS の予想通り、無料暙準の範囲内で時々䜿甚するモヌドに入りたした。
AWS Cost Explorer で䞊列スケヌリングのコストを远跡できたす。 サヌビス - Redshift、䜿甚タむプ - CS (USW2-CS:dc2.large など) を遞択する必芁がありたす。

䟡栌に぀いお詳しくはロシア語でご芧いただけたす ここに。

出所 habr.com

コメントを远加したす