6.5. 设置数据库缓存大小
数据库缓存包含数据库的 Berkeley 数据库索引文件,这意味着所有用于数据库属性索引的 192.168.1.0/24
db
和其他文件。这个值被传递给 Berkeley DB API 功能 set_cachesize ()。
这个缓存大小对 Directory 服务器性能的影响低于条目缓存大小,但如果设定了条目缓存大小后有可用的 RAM,增加分配给数据库缓存的内存量。
操作系统还具有文件系统缓存,与 RAM 使用量的数据库缓存竞争。请参阅操作系统文档,以查找有关文件系统缓存设置和监控文件系统缓存的信息。
注意
红帽建议自动根据硬件资源优化设置,而不是手动设置条目缓存大小。详情请查看 第 6.1.1 节 “手动重新启用数据库和条目缓存自动大小”。
6.5.1. 使用命令行手动设置数据库缓存大小
使用命令行手动设置数据库缓存大小:
- 禁用自动缓存调整,并设置数据库缓存大小:
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config set --cache-autosize=0 --dbcachesize=268435456
此命令将数据库缓存设置为 256MB。 - 重启 Directory Service 实例:
# dsctl instance_name restart
6.5.2. 使用 Web 控制台手动设置数据库缓存大小
使用 Web 控制台手动设置数据库缓存大小:
- 在 web 控制台中打开 Directory Server 用户界面。详情请参阅 Red Hat Directory Server Administration Guide 中的使用 Web 控制台登录到 目录服务器一节。
- 选择 实例。
- 在 Global Database Configuration。选项卡上,选择
- 禁用自动 缓存调优。
- 单击。
- 将 Database Cache Size (bytes) 字段设置为数据库缓存大小。
- 单击。
- 单击 Restart Instance。按钮,然后选择
6.5.3. 将数据库缓存存储在 RAM 磁盘上
如果运行 Directory 服务器实例的系统有足够的可用 RAM,则可选择性地将数据库缓存存储在 RAM 磁盘上,以进一步提高性能:
- 在 RAM 磁盘上为数据库缓存和元数据创建一个目录:
# mkdir -p /dev/shm/slapd-instance_name/
- 在目录中设置以下权限:
# chown dirsrv:dirsrv /dev/shm/slapd-instance_name/ # chmod 770 /dev/shm/slapd-instance_name/
- 停止 Directory 服务器实例:
# systemctl stop dirsrv@instance_name
- 编辑
/etc/dirsrv/slapd-instance_name/dse.ldif
文件,并在 cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config 条目中设置nsslapd-db-home-directory
属性中的新路径:dn: cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config ... nsslapd-db-home-directory: /dev/shm/slapd-instance_name/
如果nsslapd-db-home-directory
属性不存在,则使用新值将其添加到 cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config 条目。 - 启动 Directory 服务器实例:
# systemctl start dirsrv@instance_name
注意
当数据库缓存存储在 RAM 磁盘上时,Directory 服务器需要在每次重启后重新创建它。因此,在重新创建缓存前,服务启动和初始操作会较慢。