tomcat报“too many open files”的错误,解决办法如下:
报此错误是由于系统内核对进程打开文件个数的限制,默认为1024
[root@localhost ~]# ulimit -n
1024
修改参数,增大这个限制:
#vi /etc/security/limits.conf
增加下面这一行内容:
* - nofile 65535
将限制增加到65535
注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。
硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。
重启机器使修改配置生效
[root@localhost ~]# ulimit -n
65535
-------------------------------------
为什么发生此问题?
这些异常指出操作系统 (OS) 资源问题和操作系统与 JVM 进程用完文件描述符的原因(请参阅什么是文件描述符?)
在几个并发用户连接到服务器之后通常会发生此问题。Java 打开许多文件,以便读取运行应用程序所必需的类。大量应用程序会使用许多文件描述符,这会导致缺乏新的文件描述符。同样,每个新的套接字都需要一个描述 符。客户端和服务器通过 TCP 套接字进行通信。在与服务器建立连接时,每个浏览器的 http 请求都使用 TCP 套接字。
一定要首先监视文件描述符并了解这些诊断方法如何告知您有关打开文件的状态和其它潜在问题。在针对操作系统逐步执行此故障排除部分之后,可能有必要增加文件描述符的数量
监视文件描述符
解决方法指导原则
下面是一般指导原则和考虑事项:
确定文件描述符的总数是否太少或者某些文件描述符是否未被正确释放。
这可以通过以下方法来诊断:在不同的时期检查文件描述符的总数,确定此数量是有所减少还是一直增加。
如果此数量有所减少,则应当增加文件描述符的最大数量,以防止该问题再次发生(如何在不同平台上定义文件描述符的数量)。
此变化可以和减少连接在断开之前保持 TIME_WAIT 状态的时间结合起来(如何以及何时发布文件描述符?)。在繁忙的服务器上,缺省值(240 秒)会延迟其它连接企图,从而将限制最大连接数量。
如果此数量一直增加,则应当确定某些描述符的处理时间是否过长(文件没有正确地关闭 - 如何以及何时发布文件描述符?)以及所创建的文件是否过多(例如,驱动程序库一直为每个新的 JDBC 连接加载文件)。
加载 jar 文件还可能减少所使用的文件描述符的数量。每个 jar 文件都使用一个描述符,即使每个单独加载的单一类都将使用一个描述符时也是如此。
您可以使用下列指导原则来监视和诊断所有描述符如何由一个进程使用(这取决于您的操作系统):
检查打开的文件
Unix 平台
在诸多工具中,lsof (LiSt Open Files) Unix 管理工具(适用于 Solaris、Tru64、HP-UX、Linux 和 AIX)显示有关打开文件和网络文件描述符的信息,包括它们的类型、大小和 i-节点。
对于特定的进程,其语法如下所示:
lsof -p <进程的 pid>
分享到:
相关推荐
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是由于进程打开的文件数量超过了操作系统的限制,导致服务器...
### Too many open files 解决方法 #### 背景与问题描述 在将Web服务器从Windows环境迁移到Linux环境后,遇到了一个常见的问题:“java.net.SocketException: Too many open files”。这种异常通常发生在高并发...
### Too many open files 问题详解与解决方案 在Linux系统中,“Too many open files”错误是一个常见的性能瓶颈,尤其是在运行大量并发服务或应用时。这个问题的根本在于操作系统对每个进程可打开的文件数量有限制...
Linux too many open files 解决方案 Linux 系统中的打开文件数量限制问题是系统对程序打开文件数量的限制问题。...通过修改打开文件数量限制和核心文件大小限制,可以解决 Linux 系统中的 Too many open files 问题。
Linux系统在运行时经常会出现"too many open files"(文件打开过多)的错误,这是一个非常常见的问题,通常发生在当系统运行的应用程序尝试打开的文件数量超过了系统限制时。为了解决这个问题,我们可以从两个方面...
在IT行业中,我们经常遇到各种错误,其中之一是“too many open files”。这个错误通常发生在操作系统限制了同一时间可打开的文件数量,而程序试图超出这个限制时。在本篇文章中,我们将深入探讨这个问题,理解其...
在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...
在AIX环境中部署Weblogic时,可能会遇到一个常见的错误提示:“Too many open files”。这一错误提示通常出现在系统资源限制不当的情况下,具体表现为操作系统对单一进程能够打开的文件数量进行了限制,而当前应用...
在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题的方法。 一、临时修改 ulimit 值 可以使用 ulimit ...
在Python编程过程中,可能会遇到一个常见的错误提示:“[Errno 24] Too many open files”。这个错误通常意味着你的程序尝试打开的文件句柄超过了操作系统允许的最大限制。下面我们将深入探讨这个问题的原因、如何...
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
socket accept报Too many open files的原因
MySQL中的“Too many open connections”错误通常意味着服务器已经达到了其允许的最大并发连接数,并且无法接受更多的连接请求。这是数据库管理中的一个常见问题,尤其是在高并发访问的应用中。以下是一些解决此问题...
Too many connections故障是数据库运维中较为常见的问题,特别是在并发访问量较大的Web应用中,其背后的原理和解决方法值得深入探讨。 在Linux系统中,每个进程可用的文件句柄(file handles)数量是有限制的。文件...
ulimit 命令可以控制进程可以打开的文件句柄的数量,以免进程打开太多的文件句柄导致“Too many open files”错误。 在使用 file-max 命令时,需要注意软限制和硬限制的区别。软限制是内核强加给相应资源的限制值,...
在Linux操作系统中,...总之,理解并调整Linux中的文件打开数限制是解决“Too many open files”问题的关键。通过监控和优化进程的文件管理,以及适当地调整系统和用户级别的限制,可以确保程序能够高效稳定地运行。
运行在Linux系统上的Java程序运行了一段时间后出现Too many open files的异常情况。 这种情况常见于高并发访问文件系统,多线程网络连接等场景。程序经常访问的文件、socket在Linux中都是文件file,系统需要记录...
- 在 Nginx 的配置文件(如 `/etc/nginx/nginx.conf`)中,添加 FastDFS 相关的 server 块和 location 块,用于处理文件上传和下载请求。 **六、测试与启动** 1. 测试 Nginx 配置是否正确:`nginx -t` 2. 如果...
Run time errors Free Pascal生成的应用程序也许会生成一些...4 Too many open files 打开太多的文件 当前你的程序当前打开的文件太多咯.超过了操作系统允许打开的最多文件数. 5 File access denied 文件访问拒绝