比较流行的发行版本,比如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.
分享到:
相关推荐
linux too many open files解决方案.docx
本文主要介绍Linux报too many open files时的解决方法,感兴趣的朋友可以看一下。
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法,三种方案,临时,永久,根治
转:java.net.SocketException: Too many open files解决方法最近随着网站访问量的提高把web服务器移到linux下了,在移服务器的第二天,tomcat频繁的报 java.net.SocketException: Too many open files错误,错误...
Too many open files 问题的解决.txt
AIX关于Weblogic的报错_Too_many_open_files_的处理
NULL 博文链接:https://phl.iteye.com/blog/2256121
该文档是介绍访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files)的解决方案,与大家共享!
NULL 博文链接:https://yizhilong28.iteye.com/blog/1154098
主要给大家介绍了Python中出现错误提示:[Errno 24] Too many open files的分析与解决,需要的朋友可以参考借鉴,下面来一起看看吧。
socket accept报Too many open files的原因
Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:
每个步骤亲测通过,项目实战全部OK,如果要搭建nginx 跟fastdfs的朋友,可以下载下来保存,这是我看了很多文档以及实验完善过的文档,每个步骤都比较详细
2008mvp.zip
too many open files问题分析和解决
运行在Linux系统上的Java程序运行了一段时间后出现Too many open files的异常情况。 这种情况常见于高并发访问文件系统,多线程网络连接等场景。程序经常访问的文件、socket在Linux中都是文件file,系统需要记录...
java工程中想要读取或者导出**.yaml文件所需要的支持jar包,下载解压后直接添加到项目中即可。 如果是使用eclispe创建的yaml文件,那么还需要下载eclipse支持yaml文档的插件
Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行,你可以用ulimit -n 命令进行修改,或者修改/etc/security/...
google webrtc 实现视频通话,客户端和服务端采用websocket 连接,实现信令转换,可以正常视频通话,记得提前打开权限