too many open files

简介:

最近在做程序过程中惊现too many open files异常。

在web程序运行过程中,三不五时有用户反映页面打开慢,查询没有结果。当下的解决办法是赶紧重启了web服务器。然后分析日志,起初发现取连接池中的连接报取不到的错误,以为是连接池的问题,小紧张了一下。继续分析发现这些错误都是跟随在too many open files异常的后面,而这个异常又是常常跟在lucene查询索引的后面。google了一下,此类问题归结于应用程序打开的文件描述符超过系统限制所致,即网络连接(Socket也是一种特殊的文件)或文件IO没有关闭,占用过多。

在linux系统中增大文件描述符的方法: 修改/etc/security/limits.conf,在文件末加上

* - nofile 2048 #具体可google一下。

增大应用程序的可用文件描述符数量不是治本的方法,需要找出是什么在占用而没有及时释放。根据跟踪日志文件定位于索引的查询方法,使用 lsof -p <pid> | wc -l ,查看web服务器进程占用的文件描述符,并不停的执行查询,发现值在不停增加,而且基本没有减少的趋势, lsof -p <pid> > log.txt ,查看导出的记录,发现大量索引文件的路径及名称,而且还有很多重复的文件名。

赶紧检查相关的代码,在处理索引查询的过程中用到循环(一次查询可能涉及到多个索引目录,但需要精确的计数),而indexseacher的关闭是在最后面finally里面,等于循环里面开启的索引文件连接都没有关闭,修改了这个低级bug。 再用 lsof -p <pid> | grep <索引文件的路径> | wc -l 命令测试,执行完索引查询后,查看返回0。问题解决,教训~

目录
相关文章
|
PyTorch 算法框架/工具
torch中的随机数种子
如何在torch生成随机数时,设置随机种子,要求每次调用生成的随机数都一样
1566 0
|
存储 运维 关系型数据库
运维常见的22个故障排查和10个问题解决技巧大汇总!
运维常见的22个故障排查和10个问题解决技巧大汇总!
1254 0
|
存储 JSON 前端开发
前端下载文件以及上传图片预览,顺便了解arrayBuffer和blob
前端下载文件以及上传图片预览,顺便了解arrayBuffer和blob
1355 0
|
3月前
|
存储 NoSQL MongoDB
Too many open files报错以及WiredTiger 存储引擎与 MongoDB 的关系及原理详解-以及早期的MMAPv1详解-卓伊凡|阿肯|糖果|贝贝|莉莉
Too many open files报错以及WiredTiger 存储引擎与 MongoDB 的关系及原理详解-以及早期的MMAPv1详解-卓伊凡|阿肯|糖果|贝贝|莉莉
165 0
Too many open files报错以及WiredTiger 存储引擎与 MongoDB 的关系及原理详解-以及早期的MMAPv1详解-卓伊凡|阿肯|糖果|贝贝|莉莉
|
存储 机器学习/深度学习 自然语言处理
LangChain与向量数据库:高效的信息检索方案
【8月更文第4天】随着自然语言处理技术的发展,特别是深度学习的进步,我们能够更加高效地处理大量的文本数据。LangChain 作为一种强大的工具链,旨在简化和加速构建复杂的自然语言处理应用程序。结合向量数据库,LangChain 可以实现高效且精准的信息检索功能。本文将探讨这一组合的工作原理,并通过一个具体的实现案例来展示其在实际应用中的效果。
1097 2
|
8月前
|
物联网
LLM破局泛化诊断难题,MSSP刊登北航PHM实验室健康管理大模型交叉研究
北航PHM实验室提出了一种基于大型语言模型(LLM)的轴承故障诊断框架,结合传统诊断技术,解决了跨条件适应性、小样本学习和跨数据集泛化等问题。该框架通过信号特征量化方法提取振动数据的语义信息,并采用LoRA和QLoRA微调预训练模型,显著提升了诊断模型的泛化能力。实验结果显示,在跨数据集训练中,模型准确性提升了约10%,相关成果发表于《Mechanical Systems and Signal Processing》期刊。尽管存在计算资源需求高等挑战,该研究为旋转机械的高效维护提供了新思路。
254 2
|
网络协议 Linux Docker
在centos7下通过docker 安装onlyoffice
在centos7下通过docker 安装onlyoffice
1121 0
|
运维 监控 安全
系统故障排查与问题解决指南:步步为营,精准定位
【8月更文挑战第16天】系统故障排查与问题解决是一项复杂而艰巨的任务,需要运维人员具备扎实的专业知识、丰富的实践经验以及良好的沟通能力和团队合作精神。通过遵循本文提供的指南,您可以更加高效地应对系统故障挑战,保障系统的稳定运行和业务的持续发展。
|
SQL 关系型数据库 MySQL
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
270 0
|
Kubernetes 监控 API
在K8S中,HPA原理是什么?
在K8S中,HPA原理是什么?