某项目投产前压力测试过程中:当并发达到50的时候出现系统无法访问并报错。如附图。
“Too many open files”
遇到此问题首先要检查系统本身允许打开文件最大数,然后weblogic本身也存在允许打开文件最大数。
经排查系统打开最大数未限制。问题定位是weblogic的问题。
解决方法:
在/weblogic/Oracle/Middleware/wlserver_10.3/common/bin文件夹下找到commEnv.sh,修改文件:
resetFd() {
if [ ! -n "`uname -s |grep -i cygwin || uname -s |grep -i windows_nt || \
uname -s |grep -i HP-UX`" ]
then
ofiles=`ulimit -S -n`
maxfiles=`ulimit -H -n`
if [ "$?" = "0" -a `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 -a `expr ${ofiles} : '[0-9][0-9]*$'` -eq 0 ]; then
#ulimit -n 4096
<strong><span style="color:#ff0000;">ulimit -n 65536</span></strong>
else
if [ "$?" = "0" -a `uname -s` = "SunOS" -a `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 ]; then
if [ ${ofiles} -lt 65536 ]; then
ulimit -H -n 65536
else
ulimit -H -n ${ofiles}
fi
fi
fi
fi
}
如图将“4096”修改为“65536”,然后压力就上去了!