Denodo 組み込み MPP のサイズ設定の推奨¶
Denodo 組み込み MPP クラスタで利用可能なサイズとリソースは、パフォーマンス全体に大きな影響を与える可能性があるため、使用するシナリオに最適な構成を選択することが重要です。最適なサイズ設定は、ワークロードの特性によって大きく異なります。そのため、実際のシナリオにできるだけ近いデータとクエリを使用して、独自のサイズ設定テストを実施することをお勧めします。テストを実施する際は、 以下の点を考慮してください 。
N 個のワーカーを構成する場合は、 N+2 ノードでクラスタを作成し 、各ワーカーを 1 つのノードに配置して、コーディネーターとメタストア用の空きスペースを確保します。
一般的に、 ワーカーを増やすと、クエリの実行速度が速くなります 。これは、Denodo 組み込み MPP が並列で実行できる操作が、より多くのノードに分散されるためです。たとえば、テーブルから Parquet ファイルを読み込むとします。
特に同時実行の状況では、 CPU コア数を増やすと、クエリの速度も上がります 。
前述の考慮事項について、Denodo 組み込み MPP クラスタの 総 CPU コア数が、お使いの Denodo ライセンス で許可されている最大数に達していない ことを確認してください。
クラスタに十分な量のメモリがあることを確認します 。また、Denodo 組み込み MPP でデータがディスクに流出したり、同時実行の状況でクラッシュしたりしないように、十分な量のメモリを確保することが重要です。
以下の推奨値 は、スケールファクター 100 の TPC-DS ベンチマークを使用した当社独自のサイズ設定テストに基づいています。そのため、数億行以上に対して機能する分析クエリで構成されるワークロードの場合に有益です。
まず、128 GB 以上のメモリと 16 ~ 32 コアを搭載したノードで、8 ワーカー以上から始めます。たとえば、Amazon Web Services では、m6a.8xlarge または r6a.4xlarge ノードで開始できます。
クラッシュやパフォーマンスの低下が生じた場合は、 クラスタのサイズを 2 倍にします 。数億行を管理するクエリでは、同時に実行しない分離したクエリであっても、通常は小規模なクラスタよりもはるかに高速に実行されます。同時実行性がある場合、小規模なクラスタではおそらく十分なパフォーマンスを発揮できません。クラスタのワーカー数を 2 倍にする場合、以下のことが予測されます。
同時実行性がない場合: ほとんどのクエリでパフォーマンスが向上しますが、大幅な改善は見られません。多くの場合、5 ~ 15% の改善が見られます。
同時実行性が中程度の場合 (例: 5 つの同時実行クエリによる負荷の持続): ワーカー数を 2 倍にすると平均実行時間が 30 ~ 40% 短縮されますが、数が増えるたびに効果は弱まります。
同時実行性が中程度の場合 (例: 10 ~ 15 個の同時実行クエリによる負荷の持続)。ワーカー数を 2 倍にした場合の効果は、さらに強く持続します。8 個のワーカー (ワーカーにつき 128 GB、32 コア) では、かなりの数のクエリの処理に数分かかるようになるため、少なくとも 16 個のワーカーを使用してください。
同時実行性が高い場合: 32 個のワーカー (ワーカーにつき 128 GB、32 コア) で開始し、予想されるワークロードに応じてクラスタをスケーリングします。
クラスタのサイズを大きくしてもパフォーマンスが向上しない場合は、 メモリと CPU の数を増やしてノードを使用します 。(分散された結果を統合する集約と同様) 一部の操作が並列に実行できず、特に同時実行の状況では必要なリソースが増える可能性があることを考慮してください。たとえば、AWS では一般的に、mx8large などの汎用ノードではなく、rx8large などのメモリが最適化されたノードを使用する方法が適切です。ただし、メモリを最適化したノードはかなり高価になる場合があり、その効果はワークロードによって大きく異なる可能性があるため、使用するシナリオに応じた具体的なテストを行います。一般的に、同時実行性を上げると効果も高まりますが、状況はクエリに応じて大きく異なります。小幅な改善から、中~高の同時実行性に応じて速度が 3 倍になるなどさまざまです。
目的のパフォーマンスに達したら、 オートスケーリングを使用するようにクラスタを構成して 、必要なリソースのみを使用できます。
Kubernetes の Presto クラスタツールガイド のオートスケールのセクションで説明するように、ポッドのオートスケーリングを構成できます。
特定のクラウドプロバイダーの指示に従って、クラスタノードのオートスケーリングを構成できます。たとえば、AWS を使用している場合は、 EKS ユーザーガイド のオートスケーリングのセクションを参照してください。
注釈
クラスタのサイズやクラスタノードのリソースを増やしてもパフォーマンスが改善しない場合は、Denodo と MPP クラスタ間、および MPP クラスタとアクセスしているオブジェクトストレージ間のネットワークの遅延を確認します。