23.4 ジャーナルイベントのキャッシング

eDirectoryは、イベントコンシューマがイベントに登録して、それらのイベントが発生したらそれをコンシュームすることができるイベントシステムを備えています。イベントハンドラは、ワーカー、インライン、またはジャーナルとして登録することができます。ジャーナルイベントキューは、発生と同じ順序でイベントを報告することになっています。現在のジャーナルイベントシステムでは、ジャーナルイベントキューがメモリ内に保持されます。イベントのコンシューマが低速の場合やイベントの発生速度が処理速度を上回っている場合は、ジャーナルキューが増加し始めます。その結果、ndsdプロセスのメモリが増大します。

このジャーナルイベントシステムは変更され、メモリとディスクを組み合わせて使用することでイベントを1つのキュー内に保持できるようになりました。これにより、ndsdプロセスのメモリ使用量の急激な増加が軽減されます。

イベントが原因でメモリが増加する可能性があるのは、ndstraceが有効になっている場合か、監査が有効になっている場合です。メモリの増大は、イベントシステムキャッシングを有効にすることによって制御できます。

イベントシステムキャッシングの設定

イベントシステムキャッシングのための次の環境変数を設定する必要があります。

  • NDSD_EVENT_DISK_CACHE

    この変数は、新しいイベントシステムの使用を制御します。デフォルトで、新しいイベントシステムは無効になっています。新しいイベントシステムを有効にするには、値をtrueまたは1にしてこの変数をエクスポートします。

  • (オプション) NDSD_EVENT_DISK_CACHE_DIR

    この変数は、イベントファイルが作成される一時的な場所を指定します。指定されたディレクトリの下に、別のサブディレクトリcdir (存在しなければ)が作成されます。起動時に、このサブディレクトリ内のすべてのファイルがクリーンアップされます。キャッシングディレクトリは、別のディスクパーティション内に設定し、DIBと同じパーティション内には設定しないことをお勧めします。

    Linuxでは、NDSD_EVENT_DISK_CACHE_DIRが指定されていない場合や指定されたディレクトリにアクセスできない場合、ndsdはvardirをキャッシングディレクトリとして使用します。デフォルトで、vardir の値は/var/opt/novell/eDirectory/data/です。

    Windowsでは、この変数が指定されていない場合や指定されたディレクトリにアクセスできない場合、dhostはDIBFilesディレクトリを使用します。

メモ:キャッシングディレクトリで十分なディスク容量が使用できることを確認してください。ndsd/dhostは数GBのディスク容量をすぐに消費する可能性があります。