weblogic9调优

weblogic9调优

一、操作系统

1、网络参数

设置回路最大传输单元为1500bytes

ifconfig lo mtu 1500

2、操作系统核心参数

在sysctl.conf中加入以下行后运行sysctl –p

kernel.msgmni=1024

kernel.sem=1000 32000 32 512

fs.file-max=65535

kernel.shmmax=2147483648

net.ipv4.tcp_max_syn_backlog=8192

二、java性能调整

1、内存参数

-Xms和-Xmx控制整个堆栈的原始大小或最大值,一般而言整个jvm的堆栈不应超过物理内存的3/4;-Xmn控制新域的初始值和最大值设置,一般而言新域大小应该占整个堆栈1/4到1/2之间,通常我们设置为1/3。

编辑/home/mw/weblogic/user_projects/domains/CBPSDomain/bin/setDomain.sh

将默认的MEM_ARGS="-Xms256m -Xmx512m"修改为

MEM_ARGS="-Xms1024m -Xmx1024m -Xmn384m"

保存并重启weblogic。

2、选择BEA Jrockit作为jdk

BEA Jrockit是bea专门针对安腾做过了优化的JVM,性能和效率都比SUN jdk大大提高。

编辑/home/mw/weblogic/user_projects/domains/CBPSDomain/bin/setDomain.sh

说明之后加入

JA V A_VENDOR=”BEA”

export JA VA_VENDOR

将默认的MEM_ARGS="-Xms256m -Xmx512m"修改为

MEM_ARGS="-Xms1024m -Xmx1024m -Xgc:parallel -XXgcthreads:5"

三、weblogic性能调整

1、模式选择

将开发模式修改为产品模式,进入console--》锁定并编辑—》点击CBPSDomain—》选择配置—》常规—》将开发模式修改为生产模式—》激活更改—》重启weblogic服务

参数开发模式默认值产品模式默认值

Execute Queue: Thread Count 15 threads 25 threads

JDBC Connection Pool: MaxCapacity 15 connnections 25 connections

2、开启本地IO

进入console--》锁定并编辑—》点击CBPSDomain—》点击环境—》点击服务器—》点击CBPSServer—》配置—》调整—》锁定并编辑—》勾选启用本地IO—》激活更改—》重启weblogic服务。

3、调优TCP连接缓存数

WebLogic Server用Accept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。

进入console--》锁定并编辑—》点击CBPSDomain—》点击环境—》点击服务器—》点击CBPSServer—》配置—》调整—》锁定并编辑—》修改接受预备连接的数量—》激活更改—》重启weblogic服务。

3、调整线程数

修改config.xml

thread数量调整原则为,单个cpu最多对应50个thread,推荐每cpu25个thread,调整后确保cpu占用率在百分之九十左右效果最佳。

在config.xml中的加入黄色部分,重启weblogic服务。该段内容是将默认的thread池中thread数量修改为100个。

sisServer

true

Debug

default

100

true

8000

true

4、调整JDBC

JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数,游标的大小。

增加Statement Cache Size对于大量使用PreparedStatement对象的应用程序很有帮助,WebLogic能够为每一个连接缓存这些对象,此值默认为10。在保证数据库游标大小足够的前提下,可以根据需要提高Statement Cache Size。比如当你设置连接数为25,Cache Size为10时,数据库可能需要打开25*10=250个游标。不幸的是,当遇到与PreparedStatement Cache 有关的应用程序错误时,你需要将Cache Size设置为0。

尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved Connections和Test Released Connections也无需勾上。当然如果你的数据库不稳定,时断时续,你就可能需要上述的参数打开。

Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常情况下建议使用thin驱动。

设置jdbc最小容量=jdbc最大容量=或略小于thread数。

相关文档