本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

OpenLDAP 2.4出现Too many open files的解决方法

发布:TangLu2018-9-20 9:43分类: 系统管理 标签: openldap

OpenLDAP是轻型目录访问协议LDAP(Lightweight Directory Access Protocol)的开源方案,其作用和Windows活动目录是一样的,可以对域下所有账户进行统一管理,避免出现每个系统使用不同账户的麻烦。近期在Centos7下部署了OpenLDAP,版本为2.4。在初期运行都很正常,几天后发现在每天凌晨会有程序无法正常工作,查看OpenLDAP日志发现每当出现connection lost时都会跟着出现一warning: cannot open /etc/hosts.allow: Too many open files”的提示,如图:openldap1.png

熟悉Linux的朋友应该都知道这个是说文件描述符达到了上限,于是根据出错的时间节点查看Zabbix的监控,发现该服务器连接数最高时期也就只有1000,使用以下命令可以查看系统当前连接数:

netstat -nat|grep ESTABLISHED|wc -l


使用tailf对OpenLDAP日志进行监控,然后运行程序做测试,发现每当连接数达到1000时就会出现问题,于是得出结论——连接数达到1000时OpenLDAP会出现warning: cannot open /etc/hosts.allow: Too many open files的问题

openldap2.png

既然知道是文件描述符的问题,那么修改不就可以了吗?可是当查看ulimit时发现系统设置的文件描述符是65535,而查看OpenLDAP进程所运行的文件描述符却是1024,也就是说OpenLDAP并没有使用系统的文件描述符,而是按照自己的规则在工作,使用命令查看后发现果然被限制到了1024

 cat  /proc/`pidof slapd`/limits  #查看slapd进程的描述符信息


通过百度谷歌查了整整一天也只能查到一堆过期信息,比如修改/etc/sysconfig/ldap、修改ldap.conf等,这些都是历史版本的解决方法,在Centos 7和OpenLDAP新版本中已经没法这样解决。万幸的是在一日本网站上找到了最终解决方法,只需要在启动脚本的[Service]标签中增加一行LimitNOFILE=8192并重启服务即可修改原有的文件描述符。启动脚本修改后的内容如下:

openldap4.png


重新加载启动脚本并重启服务

systemctl daemon-reload
systemctl restart slapd


再次查看OpenLDAP的文件描述符已经成功修改。运行程序测试也一切正常,完美解决!

openldap3.png



温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《OpenLDAP 2.4出现Too many open files的解决方法
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-443.html  [生成短网址]

已有 0/1216 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~