From : http://blog.sina.com.cn/s/blog_467b0fd50100wl8d.html
1. 连接数过高时候(超过1024),ldap就会hang死,有类似下面日志打出。
daemon: accept(7) failed errno=24 (Too many open files)
解决方法:
a. 设定下客户端idle的超时时间(单位是秒),超时的连接及时关闭掉。
如下:
#close idle connections, in case of too many open files(by lnzju)
idletimeout 20
默认是服务端不主动断。
b. 在slapd启动脚本中加入(ulimit -n 10240)来扩大打开文件数
如果还不行,可以修改代码slapd/daemon.c中的FD_SETSIZE
2. 性能问题。关键数据需要加入index,否则会很慢。
日志中常常会有如下信息:
<= bdb_equality_candidates: (uidNumber) not indexed
调整如下:
index uidNumber eq
进一步的性能优化直接参见官方文档:
http://www.openldap.org/doc/admin24/tuning.html
idletimeout
以秒为单位,如果idle就强制断开client链接,默认是0,则关闭这个功能。
指定一个等待的秒数,如果超过这个时间客户都没有请求提交就关掉与客户的连接。默认情况下,idletimeout为0,表示禁用该功能。
sizelimit <integer>
设置一次search最多返回的entries数
该指令指定了一次搜索操作所能获得的最大条目数。
默认:
sizelimit 500
timelimit <integer>
以秒为单位,设置一次查询最多等待多少秒,超过时间,则返回,并表示超时。
该指令指定了slapd花在回答一个搜索请求上的最大秒数(实时)。如果在这段时间内请求没有完成,服务器端将返回一个超时给客户端。