この章では、サーバー側のソートを使用する場合のソート・メモリー構成の様々な点を調整するパラメータについて説明します。
この章の内容は次のとおりです。
Oracle GoldenGate Veridataサーバーは仮想メモリーを次のように使用します。
基本操作用サーバー・メモリー。これはVeridataサーバーおよびWebコンポーネントが動作するためだけに必要な仮想メモリーの量です。オブジェクト・プール、データベース・アクセス・ライブラリおよびその他の情報が格納されます。これは通常約200MBです。
ソート・メモリー。これはサーバー側のソートを使用する際に使用されるメモリーです。ソートの仮想メモリーはスレッドごとではなく、比較全体に対して割り当てられます。行はエージェントから読み取られ、送信されてソートされます。ソートはエージェントから読み取るスレッドとは別のスレッドで行われます。ソートは並行して動作するため多くのスレッドを使用する可能性があります。エージェントからの行をすべてソート・プロセスに送信すると、サーバー・プロセスはソートからソート済の行を取得し、比較します。
行ハッシュ・キュー・メモリー。これは、エージェント・プロセス、ソート・プロセスおよびサーバー・プロセス間のデータをバッファするメモリーです。データベース・ソートを使用する比較では、ソースとターゲットのそれぞれに単一キューが必要です。各キューの容量は20MGです。キューのメモリー使用量は比較の相対速度とエージェントからのデータ量によって異なります。2つのエージェント間の相対速度もメモリー使用量に影響します。キューはデータをバッファに入れる必要があるため、速度差が大きいほどメモリー使用量は増えます。
MOOSキュー・メモリーこれは、初回比較と比較の確認手順間で同期していない可能性があるレコードを格納するメモリーです。MOOSキューのサイズは50Kレコードに制限されています。メモリー使用量は各レコードの幅によっても異なります。
スクラッチ・ランタイム一時メモリー。これは仮想メモリー領域です。
ソート・プロセスで使用できるメモリーの量は、次のうち最小のものを超えることはできません。
システム物理メモリー
スワップ内の使用可能メモリー
Javaブート・オプション-Xmx
最大メモリー設定
Oracle GoldenGate Veridataで使用可能なメモリーの最大量は、Javaブート・オプション-Xmx
で指定されます。サーバー側のソートを使用する場合、このメモリーの大部分が比較時のソート用に確保されます。確保される量は、server.max_sort_memory
構成パラメータによって制御されます。
比較を実行する際、2つのバッファが確保されたソート・メモリーから割り当てられます。各々のサイズは、「Maximum Memory Usage (MB)」で指定されたサイズと同じです。この設定にアクセスするには、「Profile Configuration」画面で「Edit」オプションをクリックし、「Profile settings」カテゴリで「Sorting Method」をクリックします。
同時比較の数に基づいたメモリーの見積り
任意の比較に使用されるメモリーの最大量は、パラメータserver.max_comparison_sort_memory
によって設定されます。-Xmx
Javaブート・オプションは、希望する同時比較の数に対して十分な大きさに設定します。
同時比較の最大数は、server.max.concurrent_comparison_threads
構成パラメータによって定義されます。したがって、ソート・メモリーの最大量は次のとおりです。
server.max_comparison_sort_memory
* server_max_comparison_threads
たとえば、10個の同時比較が可能なようにserver.max_concurrent_comparison_threads
を設定し、server.max_comparison_sort_memory
をデフォルト値の100MBのままにすると、1GBの使用可能なメモリーが必要です。
行ごとに使用されるメモリー量の見積り
行ごとに使用されるメモリー量の見積りの詳細は、2.4.2項「サーバー・コンポーネントのディスクおよびメモリー要件」を参照してください。
パラメータを設定するには、veridata.cfg
ファイルにあるエンティティを編集します。このファイルは、Oracle GoldenGate Veridataサーバーのインストール・ディレクトリ内のshared/conf
ディレクトリに格納されています。
注意: サーバー構成またはTomcatユーザーを変更する前に |
Oracleサービス・リクエストを開いてから、これらのパラメータを変更します。詳細は、http://support.oracle.com
を参照してください。
この項では、veridata.cfg
ファイルで設定されるパラメータについて説明します。
サーバー側ソートを使用する実行中のすべての比較に使用できるソート仮想メモリーの最大量が設定されます。デフォルトの量は、Javaブート・オプション-Xmx
最大メモリー設定から、基本的なタスクに必要な200MBを除いた量です。Oracle GoldenGate Webユーザー・インタフェースがより多くのメモリーを使用できるようこの量を制限できます。
比較が起動時に十分な仮想メモリーを取得できない場合、server.sort_waiting_threshold
パラメータの設定に応じて失敗するか、再試行します。比較が十分な仮想メモリーを取得できると、現在使用可能なソート仮想メモリーは比較が確保した分だけ減らされます。比較が完了すると、使用可能なソート仮想メモリーの量は、確保されたソート仮想メモリーの分だけ増分されます。
構文
server.max_sort_memory {default | number{M | m}}
default
に設定すると、Oracle GoldenGate Veridataはオペレーティング・システム依存の最大値を定義できます。
number
{M | m}
は値がメガバイトで指定されます。たとえば、1000Mは1000メガバイトが限度であることを示します。この数値が使用可能なメモリーの量を超える場合、値は使用可能なメモリーの量まで減らされます。
実行可能な最大同時比較数が設定されます。通常、サーバーによって構成される数はマシン・リソースの最適値です。この数を減らしてシステム上のサーバーの影響を減らせます。この上限に達すると、アクティブな比較が完了するまで新たな比較は開始されません。
構文
server.max_concurrent_comparison_threads {default | number}
default
に設定すると、Oracle GoldenGate Veridataはserver.max_comparison_sort_memory
と使用可能なリソースに基づき最大同時スレッド数を計算します。デフォルト値は、server.max_sort_memory
をserver.max_comparison_sort_memory
で割った値です。
number
は、最大同時比較スレッド数を設定する正の整数です。
サーバー・ソートを使用する1つの比較で確保される仮想メモリーの最大量を設定します。この値を超える予約は、再試行が構成されていても失敗します。
このプロパティに設定される量は、Oracle GoldenGate Webユーザー・インタフェース・プロファイルで設定可能な量の上限です。
このパラメータの値が変更されると、使用中のプロファイルで定義されているソート・パラメータによっては、サーバー側ソートを使用する同時比較が失敗する場合があります。
構文
server.max_comparison_sort_memory {default | number
{ M | m }}
default
は100MBです。
number
{M | m}
は値がメガバイトで指定されます。たとえば、600Mは比較の限度が600メガバイトに設定されます。