`
caiying0504
  • 浏览: 343015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux下Too many open files的解决方案

阅读更多
比较流行的发行版本,比如Debian/Ubuntu/Arch Linux/Gentoo的shell session限制都是1024。

大多数Linux发行版本中,正常情况下session中max open files数限制为1024,对于Weblogic Server部署过程来说太小了,必须增大。

临时解决方法:
只对某个Terminal中的session起作用,用以下命令增加该数值。
ulimit -n 2048
继续在此session中启动obpmadmcenter来配置directory和创建新的WLS domain用于部署bpm。如果选择修改一个已经存在的WLS domain的话,在执行启动脚本的Terminal session中需要用同样的方法增加该数值,否则多数会得到同样的错误。
ulimit -a
可以用来查看当前session user的各种限制,当然包括修改过的数值。


永久性解决方法:
1. 修改/etc/security/limits.conf (root)
增加如下
$user hard nofile 2048
$user是用来启动WLS的用户。
2048是建议的数值,若遇到同样问题可能需要再次增加。

或者干脆用*表示所有用户:

* soft nofile 2048
* hard nofile 4096


2. 其他来自Debian GNU/Linux官方文档和Oracle Technology Network的解决方法,直接修改内核参数,无须重启系统。
sysctl -w fs.file-max 65536
或者
echo "65536" > /proc/sys/fs/file-max
两者作用是相同的,前者改内核参数,后者直接作用于参数对应的虚拟文件系统(procfs, psuedo file system)上对应的文件而已。
可以用以下的命令查看新的限制
sysctl -a | grep fs.file-max
或者
cat /proc/sys/fs/file-max

修改内核参数
/etc/sysctl.conf
echo "fs.file-max=65536" >> /etc/sysctl.conf
sysctl -p

查看当前file handles使用情况:

sysctl -a | grep fs.file-nr

或者

cat /proc/sys/fs/file-nr
825 0 65536


另外一个命令:
lsof | wc -l
有点让我困惑的是,以上两个命令获得的结果总是不相同的;-(

此外,用sysctl来修改内核参数fs.file-max和用ulimit的区别,我花了不少时间研究,讨教了Linux/FreeBSD/Solaris/OpenSolaris老鸟Jockey同学,得到点拨之后终于基本弄清楚原委了。

基本上优先级:
soft limit < hard limit < kernel < 实现最大file descriptor数采用的数据结构所导致的限制

The Linux kernel provides the getrlimit and setrlimit system calls to get and set resource limits per process. Each resource has an associated soft and hard limit. The soft limit is the value that the kernel enforces for the corresponding resource. The hard limit acts as a ceiling for the soft limit: an unprivileged process may only set its soft limit to a value in the range from 0 up to the hard limit, and (irreversibly) lower its hard limit. A privileged process (one with the CAP_SYS_RESOURCE capability) may make arbitrary changes to either limit value.

分享到:
评论

相关推荐

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...

    linux too many open files解决方案.docx

    Linux too many open files 解决方案 Linux 系统中的打开文件数量限制问题是系统对程序打开文件数量的限制问题。这个限制可以通过 `ulimit -a` 命令来查看。默认情况下,Linux 系统的打开文件数量限制是 1024,可以...

    Linux报too many open files的解决方案

    Linux系统在运行时经常会出现"too many open files"(文件打开过多)的错误,这是一个非常常见的问题,通常发生在当系统运行的应用程序尝试打开的文件数量超过了系统限制时。为了解决这个问题,我们可以从两个方面...

    Too many open files 解决方法

    ### Too many open files 解决方法 #### 背景与问题描述 在将Web服务器从Windows环境迁移到Linux环境后,...通过上述解决方案,可以有效地解决“Too many open files”问题,保证Web服务器在高并发环境下的稳定运行。

    Too many open files 问题的解决.txt

    ### Too many open files 问题详解与解决方案 在Linux系统中,“Too many open files”错误是一个常见的性能瓶颈,尤其是在运行大量并发服务或应用时。这个问题的根本在于操作系统对每个进程可打开的文件数量有限制...

    报错:too many open files处理

    针对“too many open files”错误,我们可以采取以下几种解决方法: 1. **调整系统限制**:可以通过修改`/etc/security/limits.conf`文件来永久性地提高用户或组的文件描述符限制。例如,为所有用户增加限制: ```...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    AIX关于Weblogic的报错_Too_many_open_files_的处理

    通过上述步骤,我们可以有效地解决AIX环境下Weblogic遇到的“Too many open files”问题。这不仅涉及了系统层面的资源限制调整,还包括了应用级别的优化措施。在实际操作过程中,还需要根据具体情况灵活调整,确保...

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题的方法。 一、临时修改 ulimit 值 可以使用 ulimit ...

    Python错误提示:[Errno 24] Too many open files的分析与解决

    在Python编程过程中,可能会遇到一个常见的错误提示:“[Errno 24] Too many open files”。这个错误通常意味着你的程序尝试打开的文件句柄超过了操作系统允许的最大限制。下面我们将深入探讨这个问题的原因、如何...

    socket accept报too many open files的原因

    socket accept报Too many open files的原因

    Linux下打开的文件过多错误

    Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:

    mysql too many open connections问题解决方法

    MySQL中的“Too many open connections”错误...通过以上措施,可以有效地解决或预防“Too many open connections”的问题,保证MySQL服务器的稳定运行。同时,定期审查并调整这些设置,以适应应用程序的增长和变化。

    39 案例实战:如何解决经典的Too many connections故障?背后原理是什么.pdf

    总结来说,解决Too many connections的问题需要综合考虑Linux系统层面的文件句柄限制和MySQL配置层面的最大连接数设置。同时,通过ulimit命令来调整每个进程的资源限制,也是保证系统稳定运行的一个重要手段。调整...

    nginx fastdfs.docx

    搭建 Nginx 与 FastDFS 的组合,是一种常见的文件存储和分发解决方案。FastDFS 是一个开源的轻量级分布式文件系统,而 Nginx 作为高性能的 Web 服务器和反向代理服务器,两者结合能够提供稳定、高效的文件上传和下载...

    Ansj中文分词(强大)

    Ansj中文分词是一款纯Java、主要用于自然语言处理、高精度的中文分词工具,目标是“准确、高效、自由地进行中文分词”。 ... 此分词具有自己学习的功能,所以拜托大家不要.乱提交数据.会带坏人家的....

    Linux 下应用程序最大打开文件数的理解和修改.docx

    在Linux操作系统中,...总之,理解并调整Linux中的文件打开数限制是解决“Too many open files”问题的关键。通过监控和优化进程的文件管理,以及适当地调整系统和用户级别的限制,可以确保程序能够高效稳定地运行。

    2008mvp.zip

    1. **微软最有价值专家(MVP)计划**:这是一个由微软公司设立的荣誉奖项,授予那些在技术社区中分享知识、帮助他人解决问题并对微软技术做出贡献的专家。 2. **申请流程**:文件可能详细介绍了2008年申请MVP的过程,...

    http连接关闭

    too many open files问题分析和解决

Global site tag (gtag.js) - Google Analytics