分享

weblogic: Too many open files解决办法[02]

 AlPacido 2011-10-14
 单位的系统是基于2EE架构的,采用的中间件是weblogic,操作系统是Solaris的,由多台服务器构成了应用集群。系统运行一端时间之后,出现了打开文件数过多(Too many open files)的错误,知道是什么错误,但不知道怎么改动,上网也找了一些资料都没有成功,最后在自己和别人的帮助下解决了这个问题,现在简单的说一下怎么做的,大家分享一下。

当出现问题的时候我用ulimit -a查看了一下系统的打开文件数限制,结果只有256,于是就用调整了这个值,修改了/etc/system文件,增加了如下的内容:
set rlim_fd_cur=8192
set rlim_fd_max=65535

将打开文件数设为了8192,最大为65535。重启机器之后用ulimit -a看了一下,系统的已经变成了8192,以为问题能解决了,但过了一端时间之后有出现了同样的问题。网上好多说的改系统的打开文件数就行了,但我这儿却失败了,不知道为什么,如果有谁知道的可以指教一下。

于是我又开始查找资料,使用了一个plimit命令查看了一下java进程的打开文件数只有1024,这是weblogic设的正常值,听一个工程师说如果打开文件数小于1024则weblogic设的值起作用,如果打开文件数大于1024,则会以操作系统的为准,但我遇到的问题却并非如此,进程的打开文件数还是1024,现在都没想明白。知道了这些之后,于是就把问题放在了如何永久修改java的打开文件数上,如果只是当前服务启动有效可以使用命令 plimit -n 最大打开数 pid(进程号) 实现,但这样每次重起WLS服务后都需要重新执行命令。

因为我的环境是weblogic集群,修改了一个节点管理进程文件(在%bea home%\weblogic81\server\bin目录下)startNodeManager.sh,添加了行ulimit -n 65535,保存退出就ok了,但有一点要注意,就是必须重启服务器,否则更改不会有效。重启之后进程打开文件数就变成了65535,到目前为止没再出现上述问题。

在另外一个tomcat+redhat的系统中也出现了上述的问题,正在解决中,如果解决了再和大家分享tomcat+redhat环境中如何解决该问题。如果有知道的朋友,可以留言告知,谢谢。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多