weblogic.kernel.default其实是一个WebLogic的核心参数,设置的值就是WebLogic用来响应客户端请求的线程数量。也就是说,一个用户登陆应用系统进行某操作,则WebLogic将从weblogic.kernel.default中分配一个线程给该用户。默认情况下,这个参数值是40。比如对大的企业应用,同一时间登陆操作系统的用户非常多,则40个线程就显得太少了。同时,如果你的应用程序设计得不好,造成很多操作速度非常慢,因为WebLogic要等待你一个操作完成之后,才进行线程的回收处理,如果同一时间有很多线程在执行非常慢的操作,这也会引起线程数量不够的问题。
具体的表现就是在WebLogic的控制台的myserver中的Monitoring页面下的Performance页面中,Queue Length显示不是等于0,图像可能是一个曲线。Queue Length这个参数的意义就是“在等待队列里的请求数”。正常情况下,应该是0,图像是一个水平的横线。也就是没有客户端的请求会等待,都能及时的得到系统的处理。
如果确认是因为用户过多的原因需要增大weblogic.kernel.default参数的值,我们怎么修改?
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General——点击Advanced Options的Show链接——最下面的Configure Execute Queues 链接——weblogic.kernel.Default链接——Thread Count参数。的却是隐藏的比较深。修改Thread Count的值,然后重启WebLogic就可以生效了。
如何修改weblogic默认线程池大小
weblogic 9.x使用了线程自调优技术。默认情况下,weblogic 9.x刚刚开始的时候是5个,线程数随着业务要求自动进行增加或者减少。
如果不使用9.X的线程自调优的新特性,用兼容8.1线程方式8.1的兼容参数有两个:
<self-tuning-thread-pool-size-min>和 <self-tuning-thread-pool-size-max>
1、修改weblogic domain的config.xml文件,在对应位置加入红色标注的两行内容:
<server>
<name>Adminserver</name>
<self-tuning-thread-pool-size-min>5</self-tuning-thread-pool-size-min>
<self-tuning-thread-pool-size-max>15</self-tuning-thread-pool-size-max>
...
</server>
2、在startweblogic.cmd脚本中加入一下java启动参数:
-Dweblogic.configuration.schemaValidationEnabled=false
经测试32为windows操作系统上,同样硬件条件下:weblogic9支持的最大线程数约为2900个,而tomcat6支持最大线程数约为1100多。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
官方文档指出,WebLogic 9 / WebLogic 10 的线程池是自调优的,并且在WebLogic 9的时候,通过修改config.xml可以修改默认线程池的最小值、最大值,但是很麻烦。到了WebLogic 10gR3,连修改config.xml的办法都给取消了。
但是,可以通过在启动脚本增加如下参数,可以指定默认线程池的最小值、最大值:
本帖隐藏的内容需要回复才可以浏览
-Dweblogic.threadpool.MinPoolSize=100
-Dweblogic.threadpool.MaxPoolSize=500