マップに約 500K uris を保持するレポート生成用の xquery があり、データベース内のそれらの存在 ( cts:search
with cts:document-query
) をチェックし、diff を返します。ただし、同時リクエストで同じ E ノードにヒットすると、応答時間が遅くなります。
マップが消費できるメモリ サイズに上限はありますか? いずれにせよ、マップをディスクにスワップできますか?
マップに約 500K uris を保持するレポート生成用の xquery があり、データベース内のそれらの存在 ( cts:search
with cts:document-query
) をチェックし、diff を返します。ただし、同時リクエストで同じ E ノードにヒットすると、応答時間が遅くなります。
マップが消費できるメモリ サイズに上限はありますか? いずれにせよ、マップをディスクにスワップできますか?
マップをデータベース自体に xml として保存できますが、使用するにはメモリにロードする必要があります。それらをサーバー フィールドとして格納することもできますが、それでもメモリにロードする必要があります。ただし、500k のエントリでマップを作成するのにかなりの時間がかかる場合は、そうする価値があるかもしれません。一方で、マップが最新であることをどのように追跡しますか?
各フォレストが管理サーバーで使用しているメモリの量を確認できます。フォレストに移動し、ステータス タブをクリックして、一番下までスクロールします。「メモリ内サイズ」は、マップされたファイル サイズの合計です。xdmp:forest-status
を使用して、XQuery プログラムでこの情報を収集することもできます。
メモリ消費量は、OS のアドレス空間とその仮想メモリ制限 (利用可能なスワップ空間) によって制限されます。サーバーのメモリ消費量が利用可能な物理メモリを超えた場合、OS はページをディスクにスワップします。これは、パフォーマンスに深刻な影響を与える可能性があります。そのため、OS スワップの使用率を監視して、それが速度低下の原因であるかどうかを確認してください。