对Weblogic的调优主要从SEVER、ExecuteQueue、JDBC等几个方面的相关参数进行调优:
一、SERVER
在mydomain->Servers->myserver->Configuration->Tuning->“Enable Native IO”中:
1、Native IOEnabled
TRUE,表示该Server使用本地I/O
2、SocketReaders
设置在执行线程中专用做Socket Readers的百分比
3、Maximum Open Sockets
最大打开Socket数
4、Stuck Thread MaxTime
堵塞线程时间,超过这个时间没有返回的执行线程,系统将认为是堵塞线程
如果weblogic认为某个队列中的所有的线程全部堵塞的话,weblogic将会增加执行线程的数量。
注意:执行线程的数量一旦增加,目前weblogic不会去减少他,如果增加了一些线程以后再次出现overflow的警告,weblogic会继续增加执行线程的数量,一直到达到上限为止。
5、Stuck Thread Timer Interval
系统检查堵塞线程的时间间隔
6、Low Memory GC Threshold
当可用内存小于该百分比时,垃圾回收启动
7、Low Memory Granularity Level
当两次检测的可用内存变化超过该百分比时,垃圾回收启动
8、Low Memory Sample Size
在一次检测中的取样次数
9、Low Memory Time Interval
检测间隔时间
10、Accept Backlog
等待队列中最多可以有多少TCP连接等待处理,如果在许多客户端连接被拒绝,而在服务器端没有错误显示,说明该值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%
二、ExecuteQueue
在mydomain->Servers->myserver ->Monitoring->Monitor all Active Queues... ->Configuration->weblogic.kernel.Default->
1、ThreadCount
服务器初始创建的执行线程的数量,设置原则:
增大机器的最大并发线程数使处理器利用率达到最大。对于服务器端操作比较多的线程,应该减少线程计数;对于客户端操作比较多的,应该增加线程计数。并发线程数理论上等于“本地主机CPU个数+Stuck线程数”,够用即可,过大会降低系统性能
2、QueueLength
在等待队列里的请求数,理想状态下是0
3、QueueLength Threshold Percent
一个百分数,当request的数量达到队列长度的这个比例的时候,weblogic会发出overflow的标志信息
4、ThreadsIncrease
如果weblogic发出overflow的标志信息,weblogic会尝试增加这个数量的执行线程,以解决处理矛盾
5、ThreadsMaximum
最大执行线程数
6、Threads Minimum
最小执行线程数
7、ThreadPriority
线程优先级
三、JDBC
在service->JDBC-> JDBC Connection Pools->Configuration->name->Connections
1、 Initial Capacity
初始数据库物理连接数
2、MaxCapacity
最大数据库物理连接数
3、Capacity Increment
每次数据库物理连接增加数
4、Statement Cache Type
prepared statements缓存的策略,LRU算法在有新的语句到来时,将最不经常被用得语句调整出缓存。FIXED算法为先进先出的算法
5、TestConnectionsOnReserve
TestConnectionsOnReserve设置为false(缺省设置)。如果此参数设置为真(true),则在连接被分配给调用者之前,都要经过测试,这会额外要求与数据库的反复连接
6、Statement Cache Size
宏语句设定的静态缓存,大小由JDBC连接池配置时指定,调整这个数值的大小,有利于提高系统的效率
7、Login Delay
创建数据库物理连接时的延时时间