数据库高速缓存

要使用户、服务器或 API 程序打开及关闭服务器上的数据库时延迟时间最短,每个服务器都应保留一个数据库高速缓存。关闭数据库且没有用户或进程使用数据库时,Domino® 就会将数据库放入高速缓存,这样就能快速关闭数据库。数据库在下次打开之前一直保留在高速缓存中,或在高速缓存中保留 15-20 分钟,这取决于两者谁先发生。可以快速打开高速缓存中的数据库。

机器上启动的第一个进程以及从此进程产生的任何进程都可以使用数据库高速缓存。如果在同一台机器上既运行 Domino® Administrator 又运行 Domino® 服务器(建议不要这样配置),最好在启动 Domino® Administrator 之前先启动服务器。如果首先启动 Domino® Administrator,它将拥有高速缓存并使 Domino® 服务器无法有效地使用高速缓存。

缺省情况下,高速缓存中能同时存储的数据库数目是下列两个值中的较大值:

  • NOTES.INI 文件中的 NSF_Buffer_Pool_Size 设置值除以 300K
  • 25

要更改此限制,请在 NOTES.INI 文件中添加 NSF_DbCache_Maxentries 设置或增加物理内存。增加数据库高速缓存大小可改善系统性能,但同时需要额外的内存。高速缓存中同时可存储的数据库数目最小值为 25,最大值为 2,000。

高速缓存中可同时存储的数据库实际数目是最大允许值的 1.5 倍。此缓冲区增加了用户关闭从高速缓存中打开的数据库时,Domino® 将其返回到高速缓存中的机会。

数据库通过“ager”线程从高速缓存中删除,该线程执行必要的写操作、释放分配的内存,并完成其他任务来关闭数据库。此过程每隔 15 到 20 分钟发生一次。理想情况下,数据库会及时从高速缓存中删除,从而允许新的数据库添加到高速缓存中而不超过其允许存储的数据库最大数目。但是,一旦超过最大值,就会发生以下情况之一:

  • 如果高速缓存中的数据库数目小于最大允许值的 1.5 倍,那么关闭数据库时,会将其添加到高速缓存中,同时 ager 加速将数据库的数目减少到最大允许值。该操作可能会增加对服务器 I/O 子系统的压力,同时增加对高速缓存资源的争用。
  • 如果高速缓存中当前的数据库数目大于或等于最大允许值的 1.5 倍,那么关闭数据库时,Domino® 不会将其放入高速缓存中。相反,Domino 将使用较慢的、不高速缓存的方法来关闭数据库。当用户或进程下一次打开数据库时,Domino® 将从磁盘(而不是从高速缓存中)读取数据库,使得数据库打开速度比从高速缓存中打开要慢。