Weblogic(Too many open files问题的解决过程)

最近公司的川师项目连续2天在频繁报警,而且时间点都是晚上11点过几分的样子.而且是就是too many file open日志如下:

(Too many open files ) 
    at java. io. FileInputStream. open ( Native  Method ) 
    at java. io. FileInputStream. <init > ( FileInputStream. java : 112 ) 
    at weblogic. utils. classloaders. FileSource. getInputStream (FileSource. java : 31 ) 
    at weblogic. servlet. internal. WarSource. getInputStream (WarSource. java : 65 ) 
    at weblogic. servlet. FileServlet. sendFile (FileServlet. java : 400 ) 
    Truncated.  see log file  for complete stacktrace

从日志本身可以发现“Too many open files”,说明同时打开的文件数过多,
于是估计Linux/AIX操作系统中会有参数设置允许同时打开的最大文件数量,具体查看方法可以参考:

http://hi.baidu.com/bluesnake/blog/item/d267e350019a85591138c2f2.html

第一天过后修改了linux系统的参数,并编写了一个监控脚本监控连接数目,第二天还是不对.而经过查看,在本项目正式环境中已经将允许同时打开的最大文件数量设置为了一个很大的数目,所以应该不是服务器的原因,转而查看WebLogic的配置,猜测是由WebLogic的配置文件指定了部署在WebLogic上的应用允许同时打开的最大文件数量。

首先查看startWebLogic.sh和setDomainEnv.sh,都没有发现类似设置,接下来查看WebLogic本身的配置commEnv.sh(***\wlserver_10.3\common\bin),发现如下内容:

# limit the number of open file descriptors
resetFd ( )  {
   if  [  !  -"`uname -s |grep -i cygwin || uname -s |grep -i windows_nt || \
              uname -s |grep -i HP-UX`" ]
  then
    maxfiles=`ulimit -H -n`
    if [ "
$? " = " 0 " -a  `expr ${maxfiles} : '[0-9][0-9]*$'-eq 0 ]; then
        ulimit -n 1024
    fi
  fi
}

可以发现weblogic真的限制了,最大的文件打开数目.
在***\wlserver_10.3\common\bin\目录下找到commEnv.sh,修改其resetFd()函数的ulimit -n 后面的数值,根据操作系统不同系统适量调大,调整后为 2048在当前服务器负载下并未出现异常.

改大了连接数目 等咯两天有出问题了 内存溢出 解决办法

修改weblogic\user_projects\domains\base_domain\bin下的setDomainEnv.cmd文件:

修改 

MEM_ARGS="-Xms2048m -Xmx2048m"
export MEM_ARGS

将内存设置到一个合适的值.

转载于:https://www.cnblogs.com/keen-allan/archive/2012/04/25/2469564.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值