WebLogic Server 8.1 Performance Tuning Guide
2011-01-04 09:05
281 查看
1 了解性能的目标
用户数、请求数、允许的响应时间CPU
、内存、网络等信息
2 调优操作系统
Solaris调优
ndd –set /dev/tcp tcp_time_wait_interval
60000,
将socket
的关闭保持时间缩短为60秒(默认为240秒)
Solaris 2.7
之前,tcp_time_wait_interval
的命名是tcp_close_wait_interval
其它可用ndd –set
调整的参数
参数 | 建议值 |
/dev/tcp tcp_time_wait_interval | 60000 |
/dev/tcp tcp_conn_req_max_q | 16384 |
/dev/tcp tcp_conn_req_max_q0 | 16384 |
/dev/tcp tcp_ip_abort_interval | 60000 |
/dev/tcp tcp_keepalive_interval | 7200000 |
/dev/tcp tcp_rexmit_interval_initial | 4000 |
/dev/tcp tcp_rexmit_interval_max | 10000 |
/dev/tcp tcp_rexmit_interval_min | 3000 |
/dev/tcp tcp_smallest_anon_port | 32768 |
/dev/tcp tcp_xmit_hiwat | 131072 |
/dev/tcp tcp_recv_hiwat | 131072 |
/dev/tcp tcp_naglim_def | 1 |
/dev/ce instance | 0 |
/dev/ce rx_intr_time | 32 |
的参数设定
参数 | 建议值 |
set rlim_fd_cur | 8192 |
set rlim_fd_max | 8192 |
set tcp:tcp_conn_hash_size | 32768 |
set shmsys:shminfo_shmmax Note: This should only be set for machines that have at least 4 GB RAM or higher. | 4294967295 |
set autoup | 900 |
set tune_t_fsflushr | 1 |
参考docs.sun.com/db/doc/816-0607
Solaris 9
参考docs.sun.com/db/doc/806-7009
HP-UX
调优
参见docs.hp.com/hpux/onlinedocs/TKP-90203/TKP-90203.html
Java
性能调整参见h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,1602,00.html
AIX
调优
参见publib16.boulder.ibm.com/pseries/en_US/aixbman/prftungd/prftungd02.htm
Linux
调优
可以调整一下mtu, /sbin/ifconfig lo mtu
1500
也可参见ipsysctl-tutorial.frozentux.net/ipsysctl-tutorial.html
Windows
调优(通常情况下,默认的设置是可用的)
参见www.microsoft.com/windows2000/techinfo/howitworks/communications/networkbasics/tcpip_implement.asp
或www.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/windows2000serv/maintain/optimize/perftune.asp
3 优化数据库
总体考虑数据库设计,包括跨磁盘负载分担、数据表的组织和尺寸、索引、日志等
磁盘I/O
优化,包括限制I/O
的次数,加大缓冲区等
控制Checkpoint
频率。有些数据库可以,如Oracle,
有些则不行,如SQL Server
7
Oracle
调优(8.1.7
版本)
服务进程数,检查的方法是SELECT name, value FROM
v$parameter WHERE name = ’processes’;
共享池尺寸,检查池当前可用值的方法是SELECT * FROM v$sgastat
WHERE name = ’free memory’ AND pool = ’shared pool’;
最大打开游标数,检查的方法是SELECT name, value FROM
v$sysstat WHERE name LIKE ’opened cursor%’;
数据块尺寸,检查的方法是SELECT name, value FROM
v$parameter WHERE name = ’db_block_size’;
SQL Server
调优
将tempdb
定位在快速I/O
设备上
如果性能监视显示I/O
频率加快,可以加大恢复间隔时间
采用2KB
以上的数据块尺寸
Sybase
调优
适当加大恢复间隔时间
采用2KB
以上的数据块尺寸
4 确定Java
虚拟机的设置
Sun JDK-server, -client, -Xms, -Xmx, -XX:NewSize,
-XX:MaxNewSize, -XX:SurvivorRatio, -XX:+UseISM,
-XX:+AggressiveHeap
Sun JVM
的其它参数见java.sun.com/docs/hotspot/VMOptions.html
JRockit JDK
-Xms, -Xmx, -Xns, -Xgc:parallel,
-Xxenablefatspin
堆取值是系统剩余内存的80%
–XX:NewSize,
-XX:MaxNewSize
为堆大小的1/4
,多CPU
环境下适量增大
–XX:SurvivorRatio
可设置成8
不要在benchmark
期生成GC
,观察GC
的方法
Windows, Solaris: … -verbosegc …
>> log.txt
2>&1HP-UX,
-Xverbosegc:file=/tmp/gc$$.out
BEA JRockit: -Xgcreport
通过日志时间戳,计算GC
的频度
观察GC
耗费的时间,不要超过5
秒
GC
后的堆可用内存不应增长过多
5 调整WebLogic
Server
的参数
调整执行队列的线程数,线程数和单笔响应时间成正比激活native pack
调整backlog buffer
TCP
层可保持的最大的连接数,默认值50
如果客户机无法连接WebLogic Server,
可以调整取值
定制执行队列,指派servlets
、JSPs
、EJBs
到执行队列
保证关键应用高性能的运转
限制非关键应用可占用的资源
防止死锁的发生
JSP, servlet
范例(web.xml
)
<servlet>
<servlet-name>MainServlet</servlet-name>
<jsp-file>/myapplication/critical.jsp</jsp-file>
<init-param>
<param-name>wl-dispatch-policy</param-name>
<param-value>CriticalAppQueue</param-value>
</init-param>
</servlet>
EJB
范例(weblogic-ejb-jar.xml
)
<weblogic-enterprise-bean>
<ejb-name>…</ejb-name>
<dispatch-policy>CriticalAppQueue</dispatch-policy>
</weblogic-enterprise-bean>
RMI
对象范例
java weblogic.rmic -dispatchPolicy
CriticalAppQueue ...
在使用连接池时,InitialCapacity
和MaxCapacity
应一致,MaxCapacity
的取值应比线程数大
设定SQL
语句缓存
指派Application-Level
Caching,
范例(weblogic-application.xml
)
<weblogic-application>
<ejb>
<entity-cache>
<entity-cache-name>large_account</entity-cache-name>
<max-cache-size>
<megabytes>1</megabytes>
</max-cache-size>
</entity-cache>
</ejb>
</weblogic-application>
调整Java
编译器
通过admin
console
,Configuarion
à General
à Java
Compiler
以及Configuration
à
General
à Advanced
Options
à Append to classpath
通过weblogic.xml
的jsp-descriptor
参数,compileCommand
和precompile
6
监控磁盘和CPU
的使用情况,包括应用服务器和数据库服务器
Solaris和Linux
disk, iostat –D
<interval>
CPU, iostat
<interval>
Windows
perfmon
如果数据库CPU
利用率过高,考虑索引的设计;如果磁盘利用率为100%
,可考虑更快的磁盘或RAID
WebLogic Server
的I/O
瓶颈
JMS file store
写操作,事务日志,HTTP
日志,服务器日志
试用禁止同步的JMS
写操作、加大HTTP
日志缓冲区等方法
7 监控网络上的数据传输
确定客户机与服务器、服务器与数据库之间的传输数据量使用命令netstat –s –P tcp,
查看是否有retransmission
的发生
8 检查频繁的标准输出或日志
减少日志操作,关闭System.out.println语句
9 定位应用的瓶颈
如果磁盘和网络不是瓶颈,服务器的CPU利用率又较低,则可能存在锁冲突
使用JProbe
或OptimizeIt
探测系统瓶颈
服务器CPU
利用率达到100%
后,
可继续使用JProbe
或OptimizeIt
调优
10调整应用
EJBweblogic-ejb-jar.xml
描述
Initial-beans-in-free-pool | 默认值0 |
Max-beans-in-cache | 面向stateful session bean 和entity bean, 影响活跃和钝化 |
Max-beans-in-free-pool | 对于session bean 和MDB ,可以减少实例化开销;对于entity bean ,用于finder 和home 方法。一般不需要修改,默认值1000 |
Transaction Rollback Ratio, Transaction Timeout Ratio
等
JSP
和servlet
关闭JSP
页面检查和servlet
重加载
使用基于内存的session
持久策略
预编译JSP
JMS
不要使用JMS message selectors
使用异步的方式(onMessage
)接收消息
参见dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
Session
管理
Session
影响性能
客户机cookie
值得考虑
使用本地变量保持对象
聚合对象,然后放入session
相关文章推荐
- 翻 译:Veritas.Netbackup.Enterprise.Server.6.0.Backup.Planning.And.Performance.Tuning.Guide.For.Unix,.Windows,.And.Linux
- WebLogic Server Performance and Tuning
- Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性
- 2012-12-25 11gR2 "Performance Tuning Guide" page 70 - 82
- 配置WebLogic Server 8.1的Node Manger和SSL
- 读书 《Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning》
- WebLogic JMS Performance Tuning Series, Part 3: Consumer-Side Message Pipelining
- Data Type Performance Tuning Tips for Microsoft SQL Server(转载)
- BEA WebLogic Server 8.1 JMS与 IBM MQSeries 集成方案
- Redhat 官方Performance_Tuning_Guide
- WebLogic Server 8.1 数据库连接池配置问题
- IBM ServerGuide 8.1.x安装指南-带阵列
- BEA WebLogic Server 8.1 Unleashed
- (转)WebLogic Server 8.1虚拟主机配置最佳实践
- WebLogic JMS Performance Tuning Series, Part 3: Consumer-Side Message Pipelining
- Microsoft BizTalk Server Performance Optimization Guide
- Performance Tuning guide 翻译 || 前言
- SQL Server Performance Tuning for RML
- SQL Server Index Data Structure and Performance Tuning
- BEA WebLogic Server8.1 JMS入门