北京思源培训中心_WebLogic Server 8性能调优技术

?用户数、请求数、允许的响应时间

?CPU、内存、网络等信息

2调优操作系统

?Solaris调优

o ndd –set /dev/tcp tcp_time_wait_interval 60000, 将socket的关闭保持时间缩短为60秒(默认为240秒)

o Solaris 2.7之前,tcp_time_wait_interval的命名是tcp_close_wait_interval

o其它可用ndd –set调整的参数

参数建

议值

/dev/tcp tcp_time_wait_interval600

00

/dev/tcp tcp_conn_req_max_q163

84

/dev/tcp tcp_conn_req_max_q0163

84

/dev/tcp tcp_ip_abort_interval600

00

/dev/tcp tcp_keepalive_interval720

0000

/dev/tcp

tcp_rexmit_interval_initial

400 0

/dev/tcp tcp_rexmit_interval_max100

00

/dev/tcp tcp_rexmit_interval_min300

/dev/tcp tcp_smallest_anon_port327

68

/dev/tcp tcp_xmit_hiwat131

072

/dev/tcp tcp_recv_hiwat131

072 /dev/tcp tcp_naglim_def1 /dev/ce instance0 /dev/ce rx_intr_time32

o参见https://www.360docs.net/doc/4917561526.html,/windows2000/techinfo/howitworks/communications/networkbasics/tcpip _implement.asp

o或https://www.360docs.net/doc/4917561526.html,/technet/treeview/default.asp?url=/TechNet/prodtechnol/windows2000serv/ maintain/optimize/perftune.asp

?总体考虑

o数据库设计,包括跨磁盘负载分担、数据表的组织和尺寸、索引、日志等

o磁盘I/O优化,包括限制I/O的次数,加大缓冲区等

o控制Checkpoint频率。有些数据库可以,如Oracle, 有些则不行,如SQL Server 7

?Oracle调优(8.1.7版本)

o服务进程数,检查的方法是SELECT name, value FROM v$parameter WHERE name = ’pro cesses’;

o共享池尺寸,检查池当前可用值的方法是SELECT * FROM v$sgastat WHERE name = ’fre

e memory’ AND pool = ’shared pool’;

o最大打开游标数,检查的方法是SELECT name, value FROM v$sysstat WHERE name LIKE ’opened cursor%’;

o数据块尺寸,检查的方法是SELECT name, value FROM v$parameter WH ERE name = ’db_ block_size’;

?SQL Server调优

o将tempdb定位在快速I/O设备上

o如果性能监视显示I/O频率加快,可以加大恢复间隔时间

o采用2KB以上的数据块尺寸

?Sybase调优

o适当加大恢复间隔时间

o采用2KB以上的数据块尺寸

?Sun JDK

o-server, -client, -Xms, -Xmx, -XX:NewSize, -XX:MaxNewSize, -XX:SurvivorRatio, -XX:+Use ISM, -XX:+AggressiveHeap

?Sun JVM的其它参数见https://www.360docs.net/doc/4917561526.html,/docs/hotspot/VMOptions.html

?JRockit JDK

o-Xms, -Xmx, -Xns, -Xgc:parallel, -Xxenablefatspin

?堆取值是系统剩余内存的80%

?–XX:NewSize, -XX:MaxNewSize为堆大小的1/4,多CPU环境下适量增大

?–XX:SurvivorRatio可设置成8

?不要在benchmark期生成GC,观察GC的方法

o Windows, Solaris: … -verbosegc … >> log.txt 2>&1

o HP-UX, -Xverbosegc:file=/tmp/gc$$.out

o BEA JRockit: -Xgcreport

o通过日志时间戳,计算GC的频度

o观察GC耗费的时间,不要超过5秒

o GC后的堆可用内存不应增长过多

?调整执行队列的线程数,线程数和单笔响应时间成正比

?激活native pack

?调整backlog buffer

o TCP层可保持的最大的连接数,默认值50

o如果客户机无法连接WebLogic Server, 可以调整取值

?定制执行队列,指派servlets、JSPs、EJBs到执行队列

o保证关键应用高性能的运转

o限制非关键应用可占用的资源

o防止死锁的发生

o JSP, servlet范例(web.xml)

MainServlet

/myapplication/critical.jsp

wl-dispatch-policy

CriticalAppQueue

o EJB范例(weblogic-ejb-jar.xml)

CriticalAppQueue

o RMI对象范例

java weblogic.rmic -dispatchPolicy CriticalAppQueue ...

?在使用连接池时,InitialCapacity和MaxCapacity应一致,MaxCapacity的取值应比线程数大?设定SQL语句缓存

?指派Application-Level Caching, 范例(weblogic-application.xml)

large_account

1

?调整Java编译器

o通过admin console,Configuarion →General →Java Compiler以及Configuration →Gener al →Advanced Options →Append to classpath

o通过weblogic.xml的jsp-descriptor参数,compileCommand和precompile

?Solaris和Linux

o disk, iostat –D

o CPU, iostat

?Windows

o perfmon

?如果数据库CPU利用率过高,考虑索引的设计;如果磁盘利用率为100%,可考虑更快的磁盘或RAI D

?WebLogic Server的I/O瓶颈

o JMS file store写操作,事务日志,HTTP日志,服务器日志

o试用禁止同步的JMS写操作、加大HTTP日志缓冲区等方法

?确定客户机与服务器、服务器与数据库之间的传输数据量

?使用命令netstat –s –P tcp, 查看是否有retransmission的发生

?减少日志操作,关闭System.out.println语句

?如果磁盘和网络不是瓶颈,服务器的CPU利用率又较低,则可能存在锁冲突

?使用JProbe或OptimizeIt探测系统瓶颈

?服务器CPU利用率达到100%后, 可继续使用JProbe或OptimizeIt调优

10调整应用

?EJB

o weblogic-ejb-jar.xml描述

北京思源培训中心—软件专业人才培训

咨询电话:010-******** 010-********

传真:010-********

网址:https://www.360docs.net/doc/4917561526.html,

E- Mail :abc@https://www.360docs.net/doc/4917561526.html,

地址:北京石景山杨庄路星宇写字楼411 邮政编码:100043

相关文档
最新文档