分类:
2010-01-20 10:30:40
Solaris 10中WebLogic 8.1应注意的最大文件数设置
(转载请注明出处:Java,JavaFX,Solaris技术交流 http://developers.sun.com.cn/blog/henry/)
最近在Solaris 10上做了一些关于WebLogic的性能测试。测试的WebLogic 版本为8.1 SP6,虽然是个比较旧的版本,但这是客户的应用部署环境,所以需要在上面测试性能等指标。
在性能测试中,当应用服务器的压力加大时,由于并发连接数大,往往需要把操作系统允许的每个进程文件数加大。最常用的做法就是在/etc/system里面增加以下2行:
set rlim_fd_cur=65535 set rlim_fd_max=65535
在重新启动操作系统后,就可以生效。另外可以用ulimit命令来设定该值,该命令无需重启系统,但在shell退出后就无效。
但是实际中却发现上述的文件句柄数目的调整对Weblogic 8.1SP6无效,日志中还是出现文件句柄不够的错误。用plimit命令观察Weblogic对应的java进程,发现它的文件句柄的上限仍然为1024。在使用下面命令之后,java进程的文件数上限才加大了:
# plimit -n 65535,65535 [pid]
通过跟踪,我们发现WL8.1的启动脚本里面把文件句柄数限制为1024了!实在想不出为什么会有这么个限制,可能是WL8.1盛行的时代,机器硬件的处理能力低,1024个文件就够用了吧。如今,象T5440这类型超级CMT的机器,单个进程1024个文件的上限是远远不能发挥出系统的能力。更正这个缺陷也很简单,在WL8.1的目录里面,有一个commEnv.sh文件,它的最后一行是调用一个文件句柄数的功能,注释掉这行即可:
#resetFd