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
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config set --cache-autosize=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 手动设置数据库缓存大小:dsconf -D "cn=Directory Manager" ldap://server.example.com backend config set --dbcachesize=268435456
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config set --dbcachesize=268435456Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将数据库缓存设置为 256MB。 - 重启 Directory Service 实例:
dsctl instance_name restart
# dsctl instance_name restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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/
# mkdir -p /dev/shm/slapd-instance_name/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在目录中设置以下权限:
chown dirsrv:dirsrv /dev/shm/slapd-instance_name/ chmod 770 /dev/shm/slapd-instance_name/
# chown dirsrv:dirsrv /dev/shm/slapd-instance_name/ # chmod 770 /dev/shm/slapd-instance_name/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 停止 Directory 服务器实例:
systemctl stop dirsrv@instance_name
# systemctl stop dirsrv@instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 编辑
/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/
dn: cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config ... nsslapd-db-home-directory: /dev/shm/slapd-instance_name/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果nsslapd-db-home-directory属性不存在,则使用新值将其添加到 cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config 条目。 - 启动 Directory 服务器实例:
systemctl start dirsrv@instance_name
# systemctl start dirsrv@instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
注意
当数据库缓存存储在 RAM 磁盘上时,Directory 服务器需要在每次重启后重新创建它。因此,在重新创建缓存前,服务启动和初始操作会较慢。