设为首页 收藏本站
查看: 836|回复: 0

[经验分享] WebLogic Server 8.1 Performance Tuning Guide

[复制链接]

尚未签到

发表于 2016-11-9 08:26:06 | 显示全部楼层 |阅读模式
1 了解性能的目标
  用户数、请求数、允许的响应时间
  CPU、内存、网络等信息
2 调优操作系统
  Solaris调优
  ndd –set /dev/tcp tcp_time_wait_interval60000,socket的关闭保持时间缩短为60秒(默认为240秒)
  Solaris 2.7之前,tcp_time_wait_interval的命名是tcp_close_wait_interval
  其它可用ndd –set调整的参数
参数建议值
  /dev/tcptcp_time_wait_interval
  60000
  /dev/tcptcp_conn_req_max_q
  16384
  /dev/tcptcp_conn_req_max_q0
  16384
  /dev/tcptcp_ip_abort_interval
  60000
  /dev/tcptcp_keepalive_interval
  7200000
  /dev/tcptcp_rexmit_interval_initial
  4000
  /dev/tcptcp_rexmit_interval_max
  10000
  /dev/tcptcp_rexmit_interval_min
  3000
  /dev/tcptcp_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
  
  可以编辑/etc/system的参数设定
  
参数建议值
  set rlim_fd_cur
  8192
  set rlim_fd_max
  8192
  settcp:tcp_conn_hash_size
  32768
  set shmsys:shminfo_shmmax
  Note:Thisshould only be set for machines that have at least 4 GB RAM orhigher.
  4294967295
  set autoup
  900
  set tune_t_fsflushr
  1
  
  Solaris 8参考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 mtu1500
  也可参见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 Server7
  Oracle调优(8.1.7版本)
  服务进程数,检查的方法是SELECT name, value FROMv$parameter WHERE name = ’processes’;
  共享池尺寸,检查池当前可用值的方法是SELECT * FROM v$sgastatWHERE name = ’free memory’ AND pool = ’shared pool’;
  最大打开游标数,检查的方法是SELECT name, value FROMv$sysstat WHERE name LIKE ’opened cursor%’;
  数据块尺寸,检查的方法是SELECT name, value FROMv$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.txt2>&1
  HP-UX,-Xverbosegc:file=/tmp/gc$$.out
  BEA JRockit: -Xgcreport
  通过日志时间戳,计算GC的频度
  观察GC耗费的时间,不要超过5
  GC后的堆可用内存不应增长过多
5 调整WebLogicServer的参数
  调整执行队列的线程数,线程数和单笔响应时间成正比
  激活native pack
  调整backlog buffer
  TCP层可保持的最大的连接数,默认值50
  如果客户机无法连接WebLogic Server,可以调整取值
  定制执行队列,指派servletsJSPsEJBs到执行队列
  保证关键应用高性能的运转
  限制非关键应用可占用的资源
  防止死锁的发生
  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 -dispatchPolicyCriticalAppQueue ...
  在使用连接池时,InitialCapacityMaxCapacity应一致,MaxCapacity的取值应比线程数大
  设定SQL语句缓存
  指派Application-LevelCaching,范例(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编译器
  通过adminconsoleConfiguarionà Generalà JavaCompiler以及ConfigurationàGeneralà AdvancedOptionsà Append to classpath
  通过weblogic.xmljsp-descriptor参数,compileCommandprecompile
6监控磁盘和CPU的使用情况,包括应用服务器和数据库服务器
  SolarisLinux
  disk, iostat –D<interval>
  CPU, iostat<interval>
  Windows
  perfmon
  如果数据库CPU利用率过高,考虑索引的设计;如果磁盘利用率为100%,可考虑更快的磁盘或RAID
  WebLogic ServerI/O瓶颈
  JMS file store写操作,事务日志,HTTP日志,服务器日志
  试用禁止同步的JMS写操作、加大HTTP日志缓冲区等方法
7 监控网络上的数据传输
  确定客户机与服务器、服务器与数据库之间的传输数据量
  使用命令netstat –s –P tcp,查看是否有retransmission的发生
8 检查频繁的标准输出或日志
  减少日志操作,关闭System.out.println语句
9 定位应用的瓶颈
  如果磁盘和网络不是瓶颈,服务器的CPU利用率又较低,则可能存在锁冲突
  使用JProbeOptimizeIt探测系统瓶颈
  服务器CPU利用率达到100%,可继续使用JProbeOptimizeIt调优
10调整应用
  EJB
  weblogic-ejb-jar.xml描述
  
  Initial-beans-in-free-pool
  默认值0
  Max-beans-in-cache
  面向stateful session beanentity bean,影响活跃和钝化
  Max-beans-in-free-pool
  对于session beanMDB,可以减少实例化开销;对于entitybean,用于finderhome方法。一般不需要修改,默认值1000
  
  监控EJB, Pool Miss Ratio, Destroyed Bean Ratio,Transaction Rollback Ratio, Transaction Timeout Ratio
  JSPservlet
  关闭JSP页面检查和servlet重加载
  使用基于内存的session持久策略
  预编译JSP
  JMS
  不要使用JMS message selectors
  使用异步的方式(onMessage)接收消息
  参见dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
  Session管理
  Session影响性能
  客户机cookie值得考虑
  使用本地变量保持对象
  聚合对象,然后放入session

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297745-1-1.html 上篇帖子: WebLogic Server 应用程序开发概述 下篇帖子: Weblogic Server性能调优建议
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表