网址同时访问量比较大,此时jetty就会报错,报错信息中包含“Too many open files”,例如:
java.io.FileNotFoundException: (Too many open files)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at weblogic.descriptor.DescriptorCache.writeToCache(DescriptorCache.java:236)
at weblogic.descriptor.DescriptorCache.parseXML(DescriptorCache.java:388)
Truncated. see log file for complete stacktrace
linux默认的打开文件数量是1024,我们可以用ulimit -a 来查看系统资源,例如:
[root@redhat ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024 --打开最大文件数量限制
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
解决该问题的宗旨是:增大打开文件最大句柄限制数,该数是1024的整数倍
1.临时增大open files的限制值
可以用ulimit -n 来临时增大该限制值,但是一旦重启服务器后,该值又会恢复到1024。只能暂时性的解决问题。命令如下:
sudo sh -c "ulimit -n 65535 && exec su $LOGNAME"
However, while you do need to be root to raise the limit to 65535, you probably don’t want to run your program as root. So after you raise the limit you should switch back to the current user.
To do this, run:
sudo sh -c "ulimit -n 65535 && exec su $LOGNAME"
and you will get a new shell, without root privileges, but with the raised limit. The exec causes the new shell to replace the process with sudo privileges, so after you exit that shell, you won’t accidentally end up as root again
下面这个命令可以追踪程序打开了什么文件
lsof -p <pid of jvm>
永久修改打开文件的最大数可以修改 /etc/security/limits.conf
加入下面2句
* soft nofile 2048 # Set the limit according to your needs * hard nofile 2048
然后重启putty, 可以看到生效了
相关推荐
Linux系统在运行时经常会出现"too many open files"(文件打开过多)的错误,这是一个非常常见的问题,通常发生在当系统运行的应用程序尝试打开的文件数量超过了系统限制时。为了解决这个问题,我们可以从两个方面...
### Too many open files 解决方法 #### 背景与问题描述 在将Web服务器从Windows环境迁移到Linux环境后,...通过上述解决方案,可以有效地解决“Too many open files”问题,保证Web服务器在高并发环境下的稳定运行。
但是,这种方法只能临时解决问题,当重新登录后,打开文件数的上限又会恢复到默认的 1024。 解决方法二:永久解决方案 为了永久解决 Too many open files 错误,可以修改 /etc/security/limits.conf 文件,添加...
### Too many open files 问题详解与解决方案 在Linux系统中,“Too many open files”错误是一个常见的性能瓶颈,尤其是在运行大量并发服务或应用时。这个问题的根本在于操作系统对每个进程可打开的文件数量有限制...
Linux too many open files 解决方案 Linux 系统中的打开文件数量限制问题是系统对程序打开文件数量的限制问题。...通过修改打开文件数量限制和核心文件大小限制,可以解决 Linux 系统中的 Too many open files 问题。
总的来说,“too many open files”是一个常见的运行时问题,通过理解操作系统限制和程序设计原则,我们可以有效地预防和解决这个问题。对于开发者而言,熟悉这些技巧不仅能提高应用的稳定性和性能,还能避免因错误...
总结来说,解决Too many connections的问题需要综合考虑Linux系统层面的文件句柄限制和MySQL配置层面的最大连接数设置。同时,通过ulimit命令来调整每个进程的资源限制,也是保证系统稳定运行的一个重要手段。调整...
在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...
下面是解决这个问题的方法。 一、临时修改 ulimit 值 可以使用 ulimit 命令来临时修改打开文件数的限制。例如,使用以下命令可以将打开文件数设置为 655360: [root@kvm-server nginx]# ulimit -n 655360 这将...
在Python编程过程中,可能会遇到一个常见的错误提示:“[Errno 24] Too many open files”。这个错误通常意味着你的程序尝试打开的文件句柄超过了操作系统允许的最大限制。下面我们将深入探讨这个问题的原因、如何...
linux 系统级别的能够打开的文件句柄的数file-max命令 Linux 系统中,file-max 命令用于设置系统级别的能够打开的文件句柄的数量,这个值决定了 Linux 内核可以分配的文件句柄的最大数量。当系统中的文件句柄数量...
在Linux操作系统中,...总之,理解并调整Linux中的文件打开数限制是解决“Too many open files”问题的关键。通过监控和优化进程的文件管理,以及适当地调整系统和用户级别的限制,可以确保程序能够高效稳定地运行。
Linux errno.h 文件错误号说明 errno.h 文件是 Linux 系统中一个非常重要的头文件,它定义了一系列的错误号,每...了解这些错误号对于 Linux 系统的开发和调试非常重要,这些错误号可以帮助开发者快速定位和解决问题。
在Hadoop集群中,遇到`java.io.IOException: Too many open file`和`java.lang.OutOfMemoryError`这两种异常,通常是由于资源限制或管理不当引起的。本文将深入探讨这两种错误的成因、解决策略以及如何避免它们。 1...
运行在Linux系统上的Java程序运行了一段时间后出现Too many open files的异常情况。 这种情况常见于高并发访问文件系统,多线程网络连接等场景。程序经常访问的文件、socket在Linux中都是文件file,系统需要记录...
Linux is viewed by many companies and organizations as an excellent, low-cost, secure alternative to expensive operating systems such as Microsoft Windows. The CompTIA Linux+ Powered by LPI exams test...
在使用网络爬虫或者自动化工具访问网页时,可能会遇到“Exceeded 30 redirects”的错误。...下面将详细解释这个问题,并介绍三种...同时,保持对HTTP协议和Web工作原理的理解也非常重要,这有助于更快地识别和解决问题。
在Linux或Unix系统中,错误代码24通常与"Too many open files"相关,意味着当前进程已经打开了太多的文件或连接,超过了系统允许的最大限制。 描述进一步确认了这个问题,即无法创建TCP/IP套接字,并提供了寻找解决...
### Linux操作系统错误代码详解 #### 一、概述 在Linux操作系统中,错误代码是系统返回的一种状态码,用于表示程序执行...了解这些错误代码及其含义有助于开发者和系统管理员更快地定位问题并采取相应措施解决问题。
### Linux系统调用错误代码(Errno)详解 在Linux操作系统中,系统调用是应用程序与内核交互的重要方式之一。当系统调用失败时,通常会返回一个负数,并将...了解这些错误码可以帮助开发者更准确地定位和解决问题。