24.1 メモリー管理
グラフ・サーバー(PGX)では、グラフ・データを格納するためにオンヒープとオフヒープの両方のメモリーが必要です。
グラフ・データのメモリーの割当ては次のとおりです。
- グラフ索引とグラフ・トポロジはオフヒープに格納されます。
- すべてのプリミティブ・プロパティ(integer、long、double、float、boolean、date、local_date、timestamp、time、point2d)はオフヒープに格納されます。
- 文字列プロパティはオンヒープに格納されます。
メモリー制限のデフォルト構成
オンヒープとオフヒープの両方のメモリー制限を構成できます。オンヒープについては、最大値を明示的に設定しなかった場合、デフォルトは、Java Hotspotによって決定された最大オンヒープ・サイズであり、これは、使用可能な物理メモリーの合計量などの様々な要素に基づきます。
max_on_heap_memory_usage_ratio
構成フィールドを設定して、グラフ・サーバー(PGX)が使用できるJAVAヒープ・メモリーの合計の比率を決定できます(たとえば、0.8
の値は、グラフ・サーバー(PGX)がJAVAヒープ・メモリーの80%を使用できることを意味します)。このパラメータのデフォルト値は1.0
で、JVMはメモリー不足エラーを処理できます。サーバーの速度が低下したりクラッシュしたりする可能性があるため、このパラメータを0.9
に設定して、グラフ・サーバー(PGX)がヒープ・メモリー上で全部を使用されないようにすることをお薦めします。
オフヒープについては、最大値を明示的に設定しなかった場合、デフォルトは、マシン上の使用可能な物理メモリーの合計量です。
24.1.1 オンヒープ制限の構成
systemd
構成ファイルを更新します。ただし、次回グラフ・サーバー(PGX)をアップグレードするときに、構成ファイルの更新が失われるリスクがあります。このため、ドロップイン・ファイルにオンヒープ・メモリー構成を指定することをお薦めします。ドロップイン・ファイルのディレクティブはすべて、グラフ・サーバー(PGX)の起動時にメイン構成ファイル(/etc/systemd/system/pgx.service
)のディレクティブと動的にマージされます。
ノート:
グラフ・サーバー(PGX)は、オンヒープ・メモリー・サイズを定期的にチェックします。メモリー使用量が/etc/oracle/graph/pgx.conf
ファイルのmax_on_heap_memory_usage_ratio
フィールドで定義されたしきい値を超えると(デフォルト値は0.9
)、グラフ・サーバーは例外をスローし、現在実行中のタスク(メモリーを割り当てることができない)を取り消します。これにより、ヒープ・メモリーがいっぱいになると、予期しないサーバー・クラッシュが発生する可能性がなくなります。ヒープ・メモリー割当て用の安全なバッファを確保するために、使用されているオンヒープ・メモリー値がJVMの-Xmx
値より小さくなるように、max_on_heap_memory_usage_ratio
オプションを1未満に構成することをお薦めします。
次のステップを実行して、ドロップイン・ファイルを作成し、オンヒープ・メモリー・サイズを構成できます。
親トピック: メモリー管理
24.1.2 オフヒープ制限の構成
グラフ・サーバー(PGX)構成のmax_off_heap_size
フィールドを設定して、オフヒープ制限を指定できます。max_off_heap_size
パラメータの詳細は、グラフ・サーバー(PGX)エンジンの構成パラメータを参照してください。端数処理および同期のトレードオフのため、オフヒープ制限を超えないことは保証されていません。
親トピック: メモリー管理