openldap连接数过多的解决与性能优化



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

设置一次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更新  
阅读(107) | 评论(0) | 转发(0) |
0

上一篇:linux下find查找命令用法

下一篇:邮件日志分析工具pflogsumm

相关热门文章
  • 用Php如何操作LDAP
  • mysql数据库性能优化—my.cnf...
  • oracle常见的性能优化
  • 年付香港空间,高速稳定,500M...
  • Asp.net连接数据库例程详解...
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • 什么是shell
  • linux socket的bug??
  • linux的线程是否受到了保护?...
  • IBM DS3400 盘阵怎么查看是单...
  • 启动auditd时,报错如下,怎么...
  • CGSL系统中root密码正确,但无...
  • 在CGSL系统中,如何为不同的用...
  • CGSL系统如何设置交换分区的大...
给主人留下些什么吧!~~
评论热议

你可能感兴趣的:(LINUX)