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
说明之后加入
JAVA_VENDOR=”BEA”
export JAVA_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个。
<server>
<name>sisServer</name>
<log>
<number-of-files-limited>true</number-of-files-limited>
<log-file-severity>Debug</log-file-severity>
</log>
<execute-queue>
<name>default</name>
<thread-count>200</thread-count>
</execute-queue>
<use81-style-execute-queues>true</use81-style-execute-queues>
<listen-port>8000</listen-port>
<listen-address></listen-address>
<server-diagnostic-config>
<diagnostic-context-enabled>true</diagnostic-context-enabled>
</server-diagnostic-config>
</server>
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数。
<!--EndFragment-->