スワップパラメーター

クエリが非ストリーミング操作を使用する上、多数の行を処理する場合、必要なメモリの量が急激に増加する可能性があります。過剰な消費を避けるために、Denodo ではデータの一部をディスクにスワップできます。この動作は、以下のパラメーターで制御します。

  • Maximum size in memory of each node: Virtual DataPort が非ストリーミング演算子に許可する最大メモリ使用量を制限します。Denodo は、メモリ使用量がこの制限を超えると推定した場合、行をディスクにスワップしてこれを回避します。このパラメーターは、キャッシュロードプロセスのメモリ使用量にも影響を及ぼします (詳細については、「 キャッシュロードプロセス 」を参照)。

  • Maximum size of the blocks stored in swap (KB): Denodo が行をディスクにスワップする場合、Denodo が書き込み操作に使用する最大ブロックサイズ。

通常は、これらのパラメーターのデフォルト値を変更する必要はありません。ただし、いくつかのシナリオでは、特定のビューでそれらを変更することがパフォーマンス向上につながります。

  • ビューのスワップサイズを増やすとスワップを回避でき、パフォーマンスが向上します。たとえば、特定の結合クエリ/ビューを、ハッシュメソッドを使用して実行する場合、以下の条件がすべて満たされていれば、結合ビューの [Maximum size of memory of each node] パラメーターの値を増やすことで実行のパフォーマンスを向上させられる可能性があります。

    1. 結合の右辺のビューの行がディスクにスワップされている。これを確認するには、クエリの実行トレースを開いて、Swapping プロパティが yes かどうかを確認します。

    2. Java 仮想マシン (JVM) のヒープに空き領域が存在する。

    3. 右辺のビューから結合に使用される行で空きメモリの大半が占有されるということがなく、Java 仮想マシン (JVM) がガベージコレクションをあまり実行する必要がない。

  • [Maximum size of the blocks stored in swap (KB)] パラメーターの値を増やすと、大量の並べ替え操作のパフォーマンスを向上させられる可能性があります。大量の並べ替え操作を行う場合、Denodo は大量のデータをディスクに書き込まなくてはならない場合があります (他の操作では書き込むデータが通常は何らかのキーによって自然に分割されるので、このパラメーターの影響はあまり大きくなりません)。ただし、このパラメーターの値を増やし過ぎると、メモリ使用量が増えて、パフォーマンスに悪影響を及ぼす可能性があります。

デフォルトでは、Virtual DataPort は <DENODO_HOME>/work/vdp ディレクトリにスワップファイルを作成します。Virtual DataPort でこれらのファイルを別のディレクトリに作成するには、以下の手順に従って実施します。

  1. Virtual DataPort に管理者アカウントでログインします。

  2. 次のコマンドを実行します。

    SET 'com.denodo.vdb.engine.swap.SwapManager.swapDir' = '<full path to the directory>';
    

    以下に例を示します。

    SET 'com.denodo.vdb.engine.swap.SwapManager.swapDir' = '/tmp/denodo_swapping/';
    
  1. Virtual DataPort を再起動します。