2015-11-20 17:34:53.0|分类: ubuntu|浏览量: 1891
如何设置呢,官方是这样的: 第一步:配置/etc/security/limits.conf sudo vim /etc/security/limits.conf 文件尾追加 * hard nofile 40960 * soft nofile 40960 4096可以自己设置,四列参数的设置见英文,简单讲一下: 第一列,可以是用户,也可以是组,要用@group这样的语法,也可以是通配符如*% 第二列,两个值:hard,硬限制,soft,软件限制,一般来说soft要比hard小,hard是底线,决对不能超过,超过soft报警,直到hard数 第三列,见列表,打开文件数是nofile 第四列,数量,这个也不能设置太大 第二步:/etc/pam.d/su(官方)或/etc/pam.d/common-session(网络) sudo vim /etc/pam.d/su 将 pam_limits.so 这一行注释去掉 重起系统 sudo vim /etc/pam.d/common-session 加上以下一行 session required pam_limits.so 打开/etc/pam.d/su,发现是包含/etc/pam.d/common-session这个文件的,所以修改哪个文件都应该是可以的 我的修改是在/etc/pam.d/common-session文件中进行的。 官方只到第二步,就重启系统了,没有第三步,好象不行,感觉是不是全是第三步的作用?! 第三步:配置/etc/profile 最后一行加上 ulimit -SHn 40960 重启,ulimit -n 验证,显示40960就没问题了 注意以上三步均是要使用root权限进行修改 天一个应用日志显示异常:java.net.SocketException: Too many open files,这是因为网络请求过多,也就导致了系统打开的文件过多。每一个连接都会当成“文件”看待的。 于是用命令 ulimit -a (效果:查看每个用户允许打开的最大文件数) 看到最大文件数是1024,将其更改大点,如 ulimit -n 4096 然后必须重启下网络服务,我用的是WebLogic,重启之后便没有出现异常。 导致 Too many open files ,网络请求过多是一种可能,但也有可能是程序上的缺陷,如没有释放一些文件句柄,程序open了文件却忘记了在最后close。但我确信工程中没有用到打开文件这一环节,因此这个可能是排除掉了。 用lsof -p [进程ID] 可以看到某ID的打开文件状况。进程ID可能用 ps -ef|grep java列出weblogic的进程ID,然后用此ID套入lsof -p ID号,咳,一大堆的请求哟,这显然是网络请求过多造成了 Too many open files。适当调整后便已消除这种现象。 |