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生成随机数时,设置随机种子,要求每次调用生成的随机数都一样
1746 0
|
5月前
|
存储 NoSQL MongoDB
Too many open files报错以及WiredTiger 存储引擎与 MongoDB 的关系及原理详解-以及早期的MMAPv1详解-卓伊凡|阿肯|糖果|贝贝|莉莉
Too many open files报错以及WiredTiger 存储引擎与 MongoDB 的关系及原理详解-以及早期的MMAPv1详解-卓伊凡|阿肯|糖果|贝贝|莉莉
341 0
Too many open files报错以及WiredTiger 存储引擎与 MongoDB 的关系及原理详解-以及早期的MMAPv1详解-卓伊凡|阿肯|糖果|贝贝|莉莉
|
存储 机器学习/深度学习 自然语言处理
LangChain与向量数据库:高效的信息检索方案
【8月更文第4天】随着自然语言处理技术的发展,特别是深度学习的进步,我们能够更加高效地处理大量的文本数据。LangChain 作为一种强大的工具链,旨在简化和加速构建复杂的自然语言处理应用程序。结合向量数据库,LangChain 可以实现高效且精准的信息检索功能。本文将探讨这一组合的工作原理,并通过一个具体的实现案例来展示其在实际应用中的效果。
1233 2
|
10月前
|
物联网
LLM破局泛化诊断难题,MSSP刊登北航PHM实验室健康管理大模型交叉研究
北航PHM实验室提出了一种基于大型语言模型(LLM)的轴承故障诊断框架,结合传统诊断技术,解决了跨条件适应性、小样本学习和跨数据集泛化等问题。该框架通过信号特征量化方法提取振动数据的语义信息,并采用LoRA和QLoRA微调预训练模型,显著提升了诊断模型的泛化能力。实验结果显示,在跨数据集训练中,模型准确性提升了约10%,相关成果发表于《Mechanical Systems and Signal Processing》期刊。尽管存在计算资源需求高等挑战,该研究为旋转机械的高效维护提供了新思路。
365 2
|
网络协议 Linux Docker
在centos7下通过docker 安装onlyoffice
在centos7下通过docker 安装onlyoffice
1342 0
|
机器学习/深度学习 人工智能 自然语言处理
企业内训|LLM大模型技术在金融领域的应用及实践-某商业银行分行IT团队
本企业培训是TsingtaoAI技术团队专们为某商业银行分行IT团队开发的LLM大模型技术课程。课程深入分析大模型在金融行业中的发展趋势、底层技术及应用场景,重点提升学员在大模型应用中的实际操作能力与业务场景适应力。通过对全球商用 LLM 产品及国内外技术生态的深度对比,学员将了解大模型在不同企业中的发展路径,掌握如 GPT 系列、Claude 系列、文心一言等大模型的前沿技术。针对金融行业的业务需求,学员将学会如何结合多模态技术改进用户体验、数据分析等服务流程,并掌握大模型训练与工具链的实操技术,尤其是模型的微调、迁移学习与压缩技术。
499 2
|
运维 监控 安全
系统故障排查与问题解决指南:步步为营,精准定位
【8月更文挑战第16天】系统故障排查与问题解决是一项复杂而艰巨的任务,需要运维人员具备扎实的专业知识、丰富的实践经验以及良好的沟通能力和团队合作精神。通过遵循本文提供的指南,您可以更加高效地应对系统故障挑战,保障系统的稳定运行和业务的持续发展。
|
SQL 关系型数据库 MySQL
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
311 0
|
机器学习/深度学习 数据采集 算法
机器学习入门:scikit-learn库详解与实战
本文是面向初学者的scikit-learn机器学习指南,介绍了机器学习基础知识,包括监督和无监督学习,并详细讲解了如何使用scikit-learn进行数据预处理、线性回归、逻辑回归、K-means聚类等实战操作。文章还涵盖了模型评估与选择,强调实践对于掌握机器学习的重要性。通过本文,读者将学会使用scikit-learn进行基本的机器学习任务。【6月更文挑战第10天】
1407 3
|
Java 开发工具
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
2023全网最详细的银河麒麟操作系统,Java运行环境【jdk】安装
3896 0