linux系统出现Too many open files 错误,这是因为文件描述符大小不够,或者有不正常的网络连接(Socket也是一种特殊的文件)、
文件IO没有关闭并释放出文件描述符(文件句柄,File Operator)。
使用如下命令查看系统对允许打开最大文件描述符的配置:
ulimit -u 查看open files设置
ulimit -a 查看所有设置
ulimit -u 65535(新的open files 值)修改设置
ulimit -n 65536 设置用户可以同时打开的最大文件数(max open files)
如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误
使用lsof -p pid [httpd进程的 pid、java的pid]来查看系统中apache进程和java运行时进程当前打开的文件资源,发现两者之和已
经接近1024,大于了默认的设置。
修改配置:
修改/etc/security/limits.conf,在文件末加上
* soft nofile 65536
* hard nofile 65536
系统级文件描述符极限还可以通过将以下三行添加到 /etc/rc.d/rc.local 启动脚本中来设置:
# Increase system-wide file descriptor limit.
echo 65536 > /proc/sys/fs/file-max
echo 65536 > /proc/sys/fs/inode-max
思考:虽 然调整该参数解决了当前的问题,但并不是最好的方法,出现该错误说明该服务器承载了一定的并发连接,尤其是搜索服务,
其中一个实例对外提供搜索,另一个实 例创建索引,两个实例之间也使用socket进行通信(httpclient for java),创建索引的时候会
占用大量的文件描述符,如果描述符没有及时释放(不能完全依赖垃圾回收机制,要及时的close);全站的所有与搜索有关的 接口调用
都会向其发出请求,而应用2也对外服务不少的请求,较好的办法是将搜索服务从该服务器中分离出来,这样可以分别对两者进行优化
(包括调整 Linux系统参数,比如:/etc/sysctl.conf中对net.ipv4的优化),出了问题也容易debug
分享到:
相关推荐
### Too many open files 解决方法 #### 背景与问题描述 在将Web服务器从Windows环境迁移到Linux环境后,...通过上述解决方案,可以有效地解决“Too many open files”问题,保证Web服务器在高并发环境下的稳定运行。
【描述】:“tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版” 描述中的重复强调了Tomcat6.0的安装版,暗示了这个压缩包可能是为用户提供了一键式的安装体验,帮助用户...
【标题】:Tomcat 6.0:JSP Web开发的核心服务器 ...不过,需要注意的是,由于安全性问题和新特性的缺乏,Tomcat 6.0已经不再被官方维护,建议升级到更高版本,如Tomcat 9或更高,以确保最佳的安全性和兼容性。
9. **社区支持**:作为开源项目,Tomcat拥有庞大的开发者社区,提供了丰富的文档、教程和插件,帮助用户解决问题并改进功能。 10. **跨平台**:由于其开源特性和Java语言的特性,Tomcat 6.0可以在多种操作系统上...
【标题】:“Tomcat6.0应用部署服务器” 在IT领域,Tomcat6.0是一个广泛应用的开源Web服务器和Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)技术。Tomcat6.0是Apache软件基金会Jakarta项目的一部分...
Tomcat 6.0 Tomcat 6.0 Tomcat 6.0
《深入理解Tomcat6.0:免费开源的JSP服务器》 Tomcat6.0,作为Apache软件基金会的旗下面向Java的Web应用服务器,以其免费开源的特性,深受开发者们的喜爱。它不仅是一个小巧而高效的JSP服务器,还包含了完整的HTTP...
9. **日志与监控**:Tomcat提供了详细的日志记录功能,帮助开发者诊断和解决问题。同时,通过JMX(Java Management Extensions)可以对Tomcat进行远程监控和管理。 10. **社区支持**:作为开源项目,Tomcat拥有庞大...
例如,如果你将Tomcat安装在上述路径,则`CATALINA_HOME`应设置为`C:\Program Files\Apache Software Foundation\Tomcat 6.0`。 4. **配置服务器** 打开`conf`目录下的`server.xml`文件,这是Tomcat的主要配置文件...
tomcat6.0是一款开源的网络服务器搭建程序。tomcat6.0具有强大的服务器搭建功能,简便易用,深受程序员们的使用,能够帮助你建立私人服务器,实现良好的交互和访问机制。 tomcat6.0简介: tomcat6.0是由Apache软件...
标题中的“解压版Tomcat6.0”指的是Apache Tomcat服务器的6.0版本的非安装版,这种版本不需要经过传统的安装过程,用户只需将其下载并解压缩到指定目录即可开始使用。Tomcat是一个开源的Java Servlet容器,主要用于...
10. **升级与迁移**:随着技术发展,Tomcat后续发布了更高版本,如7.0、8.0、9.0等,开发者需要了解如何从6.0迁移到新版本,以利用新功能并解决潜在的安全问题。 综上所述,Tomcat6.0作为一款重要的Java Web应用...
对于经验丰富的开发者,深入理解Tomcat的工作机制,例如线程池的管理和错误处理策略,可以优化服务器性能并解决可能出现的问题。总之,Tomcat 6.0.x是Java Web开发中一个不可或缺的工具,它的源代码也为我们提供了...
**Tomcat5.0与Tomcat6.0详解** Tomcat是Apache软件基金会下的Jakarta项目中的一个核心项目,是一款非常流行的开源Java Servlet容器。它实现了Java Servlet和JavaServer Pages(JSP)规范,用于部署和运行Java Web...
Apache Tomcat 6.0 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages (JSP) 规范的应用服务器,主要用来部署和运行Java Web应用程序。这个版本是Tomcat系列的6.0版,它在当时的发布中提供了...
标题“Tomcat6.0.rar”表明这是一份包含Tomcat 6.0版本的压缩文件,用于在用户的计算机上安装和运行这个流行的Java Servlet容器。Tomcat是Apache软件基金会的项目之一,它是一个开源的Web服务器和应用服务器,特别...
7. **社区支持**:由于Tomcat是开源项目,有一个庞大的开发者社区,可以获取到丰富的文档、示例和问题解决方案。 在使用Tomcat 6.0时,开发者需要注意的是,由于这个版本已经不再被官方支持,可能存在一些安全漏洞...
Tomcat 6.0是Apache软件基金会的Jakarta项目下的一个开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范。这个安装版包括了所有你需要开始使用Tomcat6.0进行Web应用程序部署的组件。在这个...
tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档tomcat6.0文档
【标题】:“Tomcat6.0与JSP的配置” 【描述】:“Tomcat6.0与JSP的配置教程,特别适合初学者快速掌握” 【正文】: Tomcat6.0是一个开源的、免费的Java应用服务器,主要用于运行基于Java Servlet和JavaServer ...