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
进一步的性能优化直接参见官方文档:
idletimeout
以秒为单位,如果idle就强制断开client链接,默认是0,则关闭这个功能。
指定一个等待的秒数,如果超过这个时间客户都没有请求提交就关掉与客户的连接。默认情况下,idletimeout为0,表示禁用该功能。
sizelimit
设置一次search最多返回的entries数
该指令指定了一次搜索操作所能获得的最大条目数。
默认:
sizelimit 500
timelimit
以秒为单位,设置一次查询最多等待多少秒,超过时间,则返回,并表示超时。
该指令指定了slapd花在回答一个搜索请求上的最大秒数(实时)。如果在这段时间内请求没有完成,服务器端将返回一个超时给客户端。
默认:
timelimit 3600
loglevel
该指令指定了debug声明和统计数据应当被记入日志文件的级别(currently logged to the syslogd(icon_cool.gif LOG_LOCAL4 facility)。你必须将OpenLDAP配置为--enable-debug (默认)该指令才会工作(except for the two statistics levels, which are always enabled)。log levels是可以相加的。要想知道数字与debuglevel的对应关系,可以用-? 为参数启动slapd,你也可以参考下面的这个表。的可能值是:
表5.1: Debugging Levels
Level Description
-1 nable all debugging
0 no debugging
1 trace function calls
2 debug packet handling
4 heavy trace debugging
8 connection management
16 print out packets sent and received
32 search filter processing
64 configuration file processing
128 access control list processing
256 stats log connections/operations/results
512 stats log entries sent
1024 print communication with shell backends
2048 print entry parsing debugging
########################
openldap 优化 (2010-04-15 12:53)
/var//openldap/etc/openldap/slapd.conf
directory /var/openldap/var/openldap-data
cachesize 50000
idlcachesize 150000
checkpoint 1024 5
bash-2.05# cat DB_CONFIG
set_cachesize 0 536870912 1
set_lg_regionmax 10485760
set_lg_max 104857600
set_lg_bsize 20971520
#
# Automatically remove log files that are no longer needed.
set_flags DB_LOG_AUTOREMOVE
# Just use these settings when doing slapadd...
#set_flags DB_TXN_NOSYNC
#set_flags DB_TXN_NOT_DURABLE
如果做slapadd,可以把最后两行的注释去掉,slapadd速度会爆增,作完slapadd后再把最后两行注释加上,切记切记切记切记!!!!
# Just use these settings when doing slapadd...
set_flags DB_TXN_NOSYNC
set_flags DB_TXN_NOT_DURABLE
bash-2.05# cat DB_CONFIG
set_cachesize 0 536870912 1
set_lg_regionmax 10485760
set_lg_max 104857600
set_lg_bsize 20971520
set_cachesize 1 0 1
set_lg_regionmax 1048576
set_lg_max 10485760
set_lg_bsize 2097152
#
# Automatically remove log files that are no longer needed.
set_flags DB_LOG_AUTOREMOVE
# Just use these settings when doing slapadd...
#set_flags DB_TXN_NOSYNC
#set_flags DB_TXN_NOT_DURABLE
bash-2.05#
# Use of strong authentication encouraged.
rootpw aaaaa
#cachesize 655350
cachesize 65535
#dbcachesize 1024000000
dbcachesize 512000000
concurrency 10240
threads 10240
sockbuf_max_incoming 8294303s
谢谢! 陈亦2011更新
阅读(7518) | 评论(0) | 转发(1) |