influxdb(1.8.x)疯狂报http: Accept error: accept tcp [::]:8086: accept4: too many open files; retr

背景:

      influxdb是时序数据库,大家应该都了解,用来存储以时间序列的数据最合适,例如电表或其他传感器数据;我这边设备是传感器预计后面会有上万个传感器,在2000多个传感器时系统都是正常的,很稳定,运行了一段时间,随着客户接入设备越来越多,当传感器超过5000+时,客户反馈,有些设备无法访问原始数据了,因此我这边进行排查,查看各个服务器硬件资源都还好,经过排查定位是influxdb出问题了,我这边用的是1.8.x,看了下日志,疯狂报accept4: too many open files;我在调整之前,想通过influxdb配置进行调优了下,这块建议大家也尽可能的调优下,这里能最大可能的利用硬件资源,调优参考:influxdb调优建议

经过调优后发现重启influxdb还是有问题,说明数据量还是太大了,只是优化硬件资源没办法解决,那就要进行配置操作系统相关配置,通过上面报错内容,可以进行调整limists。

linux版本:rockylinux9.2 

1、查看

ulimit -n

2、新增

vim /etc/security/limits.conf


*         hard    nofile      1048499
*         soft    nofile      1048499

保存,然后重新用登陆操作系统即可

以上操作后,以为就能成功了,最后通过命令

cat /proc/{your_app_pid}/limits

发现对应的服务上的,softLimit 还是1024,无语了。

这里有个关键的情况大家要了解下,因为ulimit和limits.conf的配置只针对登录用户,而对systemd管理的服务不起作用,服务的limit要在service文件中单独指定
服务目录路径 /usr/lib/systemd/system 或usr/systemd/system 下的服务

例如我这边创建的influxdb-service:

需要进行指定即可:

LimitNOFILE=1048499

刷新配置:

systemctl daemon-reload

重启influxdb服务即可,

在使用cat /proc/{your_app_pid}/limits 查看应用效果

总结:

max Open files需要针对每个服务进行单独设置才会生效,包含nginx代理的服务,也要在server指定limit参数才行。这里进行记录下,方便后面查找

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值