【问题现象】
ElasticSearch集群中client节点,访问几天后,出现client所在主机ping不通,通过vm管理机查看,
发现主机在运行但黑屏,而且登录不进去。
【问题分析】
1、主机ping不通,刚开始考虑是否是网络不通或者主机down掉。通过vm管理连接,登录不进去,排除网络原因,因为vm管理机登录vm不需要网络
2、配置core文件生成
=>ulimit -c =>
限制生成core文件大小 =>unlimited
=>/proc/sys/kernel/core_pattern =>core文件格式
=>/proc/sys/kernel/core_uses_pid =>是否带pid
3、
开启core日志后,发现core文件也是空的
/////////begin///////
#find / -name *.out
/etc/rc.d/init.d/a.out
# ll /etc/rc.d/init.d/a.out
-rw-r--r--. 1 root root 0 9月 2 10:29 /etc/rc.d/init.d/a.out
/////////end/////////
4、查看lsof -p <es_id> |wc -l =>数量正常,不大
5、查看lsof |wc -l=>数量很大
# lsof |wc -l
362965
6、再次分析,查看运行es的用户打开的文件句柄数
# lsof |grep user_es |wc -l
360197
7、之前配置了soft limit
# cat /etc/security/limits.conf
user_es soft memlock unlimited
user_es hard memlock unlimited
【解决】
通过上面的分析,基本可以推测出,原因是elasticsearch打开的文件句柄数越来越多,
导致操作系统资源耗尽,不能再开启新的文件句柄,这种情况下,登录,ping等都不好使
目前,先通过定时
重启client所在的节点,在crontab配置定时命令【0 2 * * * reboot】
【Tip】
频繁的文档更改操作会导致大量的小索引段,从而导致文件句柄打开过多的问题。
注意下ElasticSearch的段合并策略,默认是index.merge.policy.type:tiered,可选策略有:log_byte_size,log_doc