第 4 章 调优锁定数量
Directory 服务器中的锁定机制控制目录服务器进程可以同时运行多少个副本。例如,在导入作业过程中,Directory 服务器在 /run/lock/dirsrv/slapd-instance_name/imports/
目录中设置一个锁定,以防止 ns-slapd
Directory Server 进程、另一个导入或导出操作运行。
如果服务器没有可用的锁定,Directory 服务器会在 /var/log/dirsrv/slapd-instance_name/errors
文件中记录以下错误:
libdb: Lock table is out of available locks
但是,Directory 服务器默认设置会尝试防止服务器没有锁定,以避免数据崩溃。详情请参阅 监控免费数据库锁定的数据崩溃
4.1. 通过监控空闲数据库锁定来避免数据崩溃
退出数据库锁定可能会导致数据崩溃。要避免这种情况,Directory 服务器会监控每 500 毫秒的剩余空闲数据库锁定数量,如果活跃数据库锁定数等于或大于 90%,Directory 服务器会中止所有搜索。
这个过程将间隔改为 600
毫秒,阈值更改为 85%
。
注意
如果您设置了太高的间隔,则服务器可在下一次监控检查发生前退出锁定。设置太短的间隔可能会减慢服务器的速度。
流程
设置间隔和阈值:
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config set --locks-monitoring-enabled on --locks-monitoring-pause 600 --locks-monitoring-threshold 85
重启实例:
# dsctl instance_name restart
验证
显示锁定监控设置:
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com backend config get | grep "nsslapd-db-locks-monitoring" nsslapd-db-locks-monitoring-enabled: on nsslapd-db-locks-monitoring-threshold: 85 nsslapd-db-locks-monitoring-pause: 600