データベースキャッシュ

各サーバーでは、ユーザー、サーバー、API プログラムがサーバーにあるデータベースを開いたり閉じたりするときに発生するタイムラグを最小限に抑えるため、データベースキャッシュを保持しています。データベースを閉じるとき、そのデータベースを使用しているユーザーやプロセスが存在しない場合は、Domino® がデータベースをキャッシュに入れるため、短時間で閉じることができます。このデータベースは、もう一度開くか、約 15 分から 20 分経過するまで、キャッシュから削除されません。キャッシュに保存されているデータベースは、短時間で開くことができます。

データベースキャッシュを利用できるのは、そのコンピュータで起動した最初のプロセスか、そのプロセスから起動されたプロセスです。Domino Administrator と Domino サーバーを同じコンピュータで実行する場合は (この構成は推奨しません)、サーバーを Domino Administrator より先に起動します。Domino Administrator を先に起動すると、Domino Administrator がキャッシュを占有するため、Domino サーバーが効率よくキャッシュを使用することができません。

キャッシュ内に同時に保存できるデータベース数のデフォルト値は、次のうち大きいほうです。

  • NOTES.INI ファイルの NSF_Buffer_Pool_Size 設定を 300 K で割った値。
  • 25

この上限値を変更するには、NOTES.INI ファイルに NSF_DbCache_Maxentries 設定を追加するか、物理メモリを増やします。データベースキャッシュのサイズを増やすと、システムのパフォーマンスが向上しますが、必要となるメモリ容量は増加します。キャッシュ内に一度に保存できるデータベースの最小数は 25、最大数は 2,000 です。

キャッシュ内に一度に保存できる実際のデータベース数は、この最大値の 1.5 倍です。このバッファを使用することによって、ユーザーがキャッシュにあるデータベースを開いて閉じた場合、Domino によってそのデータベースがキャッシュに戻される可能性が高くなります。

データベースは、「履歴管理」スレッドによってキャッシュから削除されます。履歴管理スレッドは、必要な書き込みを行ってメモリを解放し、その他の必要なタスクを実行してからデータベースを閉じます。この処理には 15 分から 20 分かかります。キャッシュからのデータベースの削除は、キャッシュの最大データベース数を超過せずに、新しいデータベースを追加するタイミングで実行されるのが理想です。一方、最大データベース数を超えた場合には次のいずれかの処理が実行されます。

  • データベースを閉じたとき、その時点でキャッシュにあるデータベース数が最大数の 1.5 倍より少ない場合、データベースはキャッシュに追加され、履歴管理スレッドがデータベース数を最大数まで減らすための処理を実行します。これにより、サーバーの I/O サブシステムにかかる負荷が増加し、キャッシュリソースの競合が発生しやすくなります。
  • データベースを閉じたとき、その時点でキャッシュに最大値の 1.5 倍以上のデータベースがある場合は、Domino によりデータベースがキャッシュに追加されません。代わりに、時間がかかる、キャッシュを使用しない方法でデータベースが閉じられます。ユーザーやプロセスが次にそのデータベースを開くときには、Domino によりディスクからデータベースが読み込まれるため、データベースがキャッシュにある場合より時間がかかります。