北京思源培训中心_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)
o EJB范例(weblogic-ejb-jar.xml)
o RMI对象范例
java weblogic.rmic -dispatchPolicy CriticalAppQueue ...
?在使用连接池时,InitialCapacity和MaxCapacity应一致,MaxCapacity的取值应比线程数大?设定SQL语句缓存
?指派Application-Level Caching, 范例(weblogic-application.xml)
?调整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