单节点es 打开文件过多(too many open files)

博客详细记录了解决Elasticsearch服务在Linux环境下因文件句柄限制不足导致无法正常写入数据的问题,通过调整系统配置及systemctl服务设置,成功解决了es服务异常,并探讨了translog问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天重启es后,发现es服务是启动了,但是实时数据并未写入es数据库,查看日志发现,报错如下图
在这里插入图片描述

我看了下正在运行的es程序打开了多少文件(4274是es的pid)
在这里插入图片描述

然后再网上搜了很多,说是要调整linux的系统,将open file改成655350,
在这里插入图片描述

系统这边open files 只有1024,远远小于137820,所以es报错了,

vim /etc/security/limits.conf

在文档最后添加,使其永久生效

  • soft nofile 655350

  • hard nofile 655350

我改过后,重启es,es依然报同样的错误,一时不知道怎么办,然后尝试前台启动es后,es正常起来了,

然后,我想起来了,我的es是设置了systemctl 系统服务启动的,然后查看自己的elasticsearch.service文件,如下图
在这里插入图片描述

想起来systemctl 服务里面应该要调整es用户最大打开文件数,修改后,完美解决(未修改前只有65535 <137820)

translog过多的问题没有解决,然后观察了一会,es打开文件的数量缓慢上升,唉,还是没有真正解决translog问题,再查查资料把!

补充一下(待验证)
es打开文件过多问题,我突然想到是不是我单节点的索引有一些问题,然后我首先
1.设置默认分片和副本数,确保以后的索引是正常的:
curl -XPUT ‘http://localhost:9200/_template/template_http_request_record’ -H ‘Content-Type: application/json’ -d ‘{“index_patterns”: ["*"],“settings”: {“number_of_shards”: 1,“number_of_replicas”: 0}}’
2.清除现有索引的缓存:
进入kibana界面,
清除索引缓存
在这里插入图片描述
在这里插入图片描述
冲洗索引数据
在这里插入图片描述
3.再次查看es打开文件数量,数量已经下降
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值