このトピックでは、エンタープライズレベルの状態バックエンドストレージ GeminiStateBackend を使用する場合に構成できるチューニングパラメーターについて説明します。
背景情報
ほとんどのシナリオでは、GeminiStateBackend は、適応型パラメーターチューニング機能に基づいて、手動で構成することなく、パラメーター構成を自動的に調整できます。ビジネスシナリオに基づいて特定の基本構成のみを調整する必要があります。詳細については、基本パラメーターをご参照ください。特定のシナリオでは、パフォーマンスをさらに最適化するようにパラメーターを構成できます。このトピックでは、以下のシナリオにおける特定のパラメーター構成について説明します。
メモリリソースとパフォーマンスを調整する場合、メモリ関連のパラメーターを構成します。詳細については、メモリ関連のパラメーターをご参照ください。
ローカルディスク容量が不足している場合は、コンピューティングストレージ分離のパラメーターを構成します。詳細については、コンピューティングストレージ分離のパラメーターをご参照ください。
JOIN 演算子にパフォーマンスボトルネックがある場合は、キーバリュー分離のパラメーターを構成します。詳細については、キーバリュー分離のパラメーターをご参照ください。
エンタープライズレベルの状態ストレージの詳細については、GeminiStateBackend をご参照ください。エンタープライズレベルの状態ストレージの構成方法の詳細については、状態バックエンドに関連するパラメーターの構成をご参照ください。
基本パラメーター
パラメーター | 説明 | データ型 | デフォルト値 | 備考 |
table.exec.state.ttl | SQL デプロイにおける状態データの TTL。 | LONG |
| 単位:ミリ秒。たとえば、このパラメーターを 129600000 に設定すると、状態データの TTL は 1.5 日になります。このパラメーターは、state.backend.gemini.ttl.ms パラメーターと併用することはできません。 説明 ビジネス要件に基づいて、このパラメーターを小さい値に設定することをお勧めします。 |
state.backend.gemini.ttl.ms | DataStream デプロイまたは Python デプロイにおける状態データの TTL。 | LONG | (なし) | 単位:ミリ秒。たとえば、このパラメーターを 129600000 に設定すると、状態データの TTL は 1.5 日になります。このパラメーターは、table.exec.state.ttl パラメーターと併用することはできません。 説明 ビジネス要件に基づいて、このパラメーターを小さい値に設定することをお勧めします。 |
state.backend.gemini.savepoint.external-sort.local-storage.enabled | セーブポイントの作成中に生成される一時データをローカルディスクに保存するかどうかを指定します。 | BOOLEAN | false | 有効な値:
説明
|
メモリ関連のパラメーター
次の表は、VVR 4.0 以降でのみ構成できるメモリ関連のパラメーターについて説明しています。
パラメーター | 説明 | データ型 | デフォルト値 | 備考 |
state.backend.gemini.memory.managed | GeminiStateBackend が管理対象メモリに基づいてメモリを自動的に割り当てるかどうかを指定します。 | BOOLEAN | true | 有効な値:
説明
|
state.backend.gemini.total.writebuffer.size | WriteBuffer が占有するメモリの合計サイズ。 | STRING | 128 MB | このパラメーターは、state.backend.gemini.memory.managed パラメーターが false に設定されている場合に有効になります。それ以外の場合、WriteBuffer が占有するメモリの合計サイズは、管理対象メモリに基づいて自動的に計算されます。 このパラメーターを構成する場合は、このパラメーターの値に単位を追加する必要があります。単位は B、KB、MB、または GB です。 説明
|
state.backend.gemini.offheap.size | GeminiStateBackend によって使用されるオフヒープメモリのサイズ。 説明 GeminiStateBackend によって使用されるオフヒープメモリには、WriteBuffer が占有するメモリは含まれません。 | STRING | (なし) | このパラメーターは、state.backend.gemini.memory.managed パラメーターが false に設定されている場合に有効になります。それ以外の場合、GeminiStateBackend によって使用されるオフヒープメモリのサイズは、管理対象メモリに基づいて自動的に計算されます。 このパラメーターを構成する場合は、このパラメーターの値に単位を追加する必要があります。単位は B、KB、MB、または GB です。 説明
|
Apache Flink のチェックポイントと状態バックエンドの基本構成は、GeminiStateBackend にも適用されます。詳細については、チェックポイントと状態バックエンドをご参照ください。
コンピューティングストレージ分離のパラメーター
次の表は、VVR 4.0.11 以降でのみ構成できるコンピューティングストレージ分離のパラメーターについて説明しています。
パラメーター | 説明 | データ型 | デフォルト値 | 備考 |
state.backend.gemini.file.cache.type | コンピューティングストレージ分離モード。 | STRING |
| 有効な値:
|
state.backend.gemini.file.cache.preserved-space | TaskManager 上の状態データに使用できるディスク容量。 | STRING | 2 GB | 実際に使用可能なディスク容量がこのパラメーターの値よりも少ない場合、GeminiStateBackend は状態データを DFS に保存して、ローカルストレージの制限をなくします。 このパラメーターを構成する場合は、このパラメーターの値に単位を追加する必要があります。単位は B、KB、MB、または GB です。 説明
|
オブジェクトストレージサービス(OSS)クライアント SDK は、OSS クライアント SDK がファイルをアップロードする前に、ファイルからローカルディスクにデータを書き込みます。そのため、OSS を DFS として使用する場合、予期しないディスク容量の使用が発生する可能性があります。Flink がセーブポイントを作成する場合、単一の状態バックエンドは 1 つのファイルのみを生成します。その結果、大きな非圧縮ファイルが生成され、ファイルがディスク容量を占有します。このシナリオでは、コンピューティングストレージ分離機能は失敗します。この問題を解決するには、並列処理を増やして単一ノード上の状態データのサイズを削減する必要があります。
キーバリュー分離のパラメーター
次の表は、VVR 4.0.12 以降でのみ構成できるキーバリュー分離のパラメーターについて説明しています。
パラメーター | 説明 | データ型 | デフォルト値 | 備考 |
state.backend.gemini.kv.separate.mode | キーバリュー分離モード。 | STRING |
| 有効な値:
説明
|
state.backend.gemini.kv.separate.value.size.threshold | キーバリュー分離が有効になった後、キーバリュー分離をトリガーする値のサイズしきい値。 | INTEGER | 200 | 値がこのしきい値に達したレコードのキーと値は個別に保存されます。推奨値は 150 ~ 1000 です。JOIN 操作の成功率に基づいて、このパラメーターの値を調整できます。JOIN 操作の成功率が高い場合は、このパラメーターを大きい値に設定できます。 単位:バイト。 説明 VVR 6.0.1 以降を使用する Apache Flink 用 Realtime Compute では、適応型パラメーターチューニング機能を有効にしている場合、エンジンはデータ特性に基づいてこのパラメーターの値を動的に調整できます。このパラメーターを明示的に構成する必要はありません。 |
適応型パラメーターチューニングのパラメーター
次の表は、VVR 4.0.12 以降でのみ構成できる適応型パラメーターチューニングのパラメーターについて説明しています。
パラメーター | 説明 | データ型 | デフォルト値 | 備考 |
state.backend.gemini.auto-tune.mode | 適応型パラメーターチューニングモード。 | STRING | ACTIVE | 有効な値:
説明
|
state.backend.gemini.auto-tune.burst.start.x | 適応型パラメーターチューニングが有効になっている場合に、パフォーマンス優先モードが使用される期間。 | STRING | (なし) | パラメーター名に含まれる文字 x は数字に置き換えることができます。start.x は end.x に対応します。2 つのパラメーターを構成して、複数の期間を指定できます。パラメーターの値は yyyy-MM-dd HH:mm:ss 形式です。 1 秒あたりのトランザクション数(TPS)の要件がパフォーマンスの要件よりも高い場合は、2 つのパラメーターを構成できます。GeminiStateBackend は、これらのパラメーターで指定された期間中に TPS 優先ポリシーを使用して、より高い TPS を実現します。ただし、2 つのパラメーターを構成すると、より多くのリソースが消費されます。リソースとは CPU コアとメモリを指します。 説明
|
state.backend.gemini.auto-tune.burst.end.x |