免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3005 | 回复: 0
打印 上一主题 下一主题

[WebLogic] java,weblogic和jdk性能文档(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-04 17:34 |只看该作者 |倒序浏览
java,weblogic和jdk性能文档(转)




2,并发低暂停回收器.这个回收器使用-XX:+UseConcMarkSweepGC参数启动.并发回收器通常收集保持带而且大多数收集工作和应用程序并行处理.应用程序在收集期间只需短暂的暂停.使用参数 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC 一个并行版本的年轻代收集器被复制被用来当作并发收集器.
3,增量低暂停回收器.这个回收器使用-Xincgc 参数启动.注意,这个增量垃圾回收器是当作最小回收的一部分,试图分散主回收的大暂停时间到许多小的小回收中.然而,如果考虑全部的吞吐量,它甚至比缺省的保持回收器更浪费时间,只是它变得分散罢了,暂停时间变小了.
注意-XX:+UseParallelGC 和-XX:+UseConcMarkSweepGC不应该一起使用.1.4.2版本的J2SE平台仅仅允许合法的参数组合出现.但早期发布的可能检测不出非法的组合.结果非法的组合导致的结果不可预知.
一般,首先使用缺省的收集器.调整堆大小来迎合你的应用即可,如果实在不行,怎么也不能满足要求,然后在考虑使用其他的收集器.
1.5 经验数值:
JVM 的堆大小决定了 VM 花费在收集垃圾上的时间和频度(最重要的性能影响)。
如果系统花费很多的时间收集垃圾(也就是一次回收需要花费的cpu时间),请减小堆大小
一次完全的垃圾收集应该不超过 3-5 秒
一般说来,你应该使用物理内存的 80% 作为堆大小
每次垃圾收集后堆的效果如何。如果堆在回收后通常是85%左右,则应增加堆大小。
如果发现垃圾收集的时间太长,则应考虑减小堆大小。典型情况是应该分配给JVM80%的内存资源。


2 .JRockit虚拟机
在基于Intel的体系结构上,为了获得更好的性能,把WebLogic配置为使用JRockit虚拟机。 bea公司开发的这个虚拟机是为了使用最简单的配置来达到最好的运行效果.所以这个虚拟机比sun的JDK虚拟机更加简单. 如果运行的是具有超线程功能的Intel处理器,在安装完成后需要一个额外的步骤。任何一个处理器(实际的或虚拟的)的cupid必须可被任意进程读取;此功能既可自动实现也可通过修改/dev/cpu/X/cupid(X是CPU号)文件的权限来实现。有关启用此功能的技术细节,请参考JRockit 的发布说明(http://edocs.bea.com/wljrockit/docs81/relnotes/relnotes.html
JRockit的安装配置文档,请参考<<使用Jrockit.doc>>文档.
使用文档中介绍的配置.如果涉及到垃圾回收暂停时间问题,则考虑其他垃圾回收算法. 你要调优的目的是什么,是要得到更好的响应性还是更好的性能.
下面为虚拟机启动选项:
MEM_ARGS="-Xns:8m -Xmx:1024m -Xms:1024m JAVA_VM=" -server -Xmanagement -Djrockit.managementserver.port=7093"
注意几点:

缺省使用gencopy,否则使用gencon
>: 使用-Xns:<size>来设置Nursery的尺寸,我们要在保证垃圾回收停顿时间(garbage collection-pause)尽可能短的同时,尽量加大Nursery的尺寸,这在创建了大量的临时对象时尤其重要。缺省值为:
对于-Xgc:gencopy,缺省的Nursery大小为320KB/CPU,对于10个CPU的系统来说,Nursery大小为3200KB(3.2M)
对于-Xgc:gencon,缺省的Nursery大小为10M/CPU,对于10个CPU的系统来说,Nursery大小为100M

>: -Xmx:1024m -Xms:1024m 推荐这个两个数据设置为一样大小.
>: -Xgc:gencon 如果要得到最快的响应性能,就可以不设置任何回收算法,缺省的就是这个算法.低暂停回收,你可以设置最大的可用内存.
如果你的系统有大量的临时对象,则需要设置新生堆(例如: -Xns:8m)
>: -Xgc:parallel 为了得到更好的性能,选用并行垃圾回收器,由于并行垃圾回收器不使用nursery,因此你不必再设置-Xns;
更加详细的中文翻译说明,请参考:http://dev2dev.bea.com.cn/techdoc/jrockit/20031199.html
更详细的JRockit英文官方说明,请参考:http://e-docs.bea.com/wljrockit/docs81/userguide/mancons.html
更详细的JRockit官方调优说明,请参考:http://e-docs.bea.com/wljrockit/docs81/tuning/index.html

3, 工具
Jrockit使用
JRockit监控.
两种监控方式:
第一种是使用weblogic控制台远程监控.打开weblogic控制台
->servers ->myserver->monitoring -> JRockit 这里显示了 内存,垃圾回收,cpu占有率方面的信息等其他信息.这个监控仅仅监控远程的运行状态,不比下面本地的监控还能监控类方法的执行时间.如果要查找瓶颈,只能使用下面的第二种方法.
第二种方法是,使用本地的JRockit配置监控远程的服务器.如果本地安装过weblogic的8.1版本.则找到weblogic的安装目录下的C:\bea\jrockit81sp3_142_04\console\ManagementConsole.jar 用javaw.exe打开这个jar .注意虚拟机启动一定要使用-Xmanagement -Djrockit.managementserver.port=7093参数. 其中的端口可以自己设定(缺省是7090).启动后,出现监控的界面.需要配置如下:
建立一个new connection
输入一个名称,输入远程的地址,输入监控端口(和上面的一致7093,缺省是7090)
点击绿色的connect,当前的配置管理节点的红色的圆球变为绿色了.表明开始监控.
上面的几个页面中
Overview 概要观察页面
Memory 内存观察页面
Processor Cpu观察页面
System 系统页面
Notification 警告提示设置页面
Method Profiler 方法观察工具
Exception Count 异常观察
重点说明Method Profiler页面的方法执行时间用来查找瓶颈的用途.
点击new template新建一个模板,这个模板就是方案.点击下面的Add method 按钮.输入类的名称,点击 next ,显示了此类内的所有方法,选择你要的方法,多选即可.单击finish,这个方法被添加到方法列表中去了.点击上面的 star 按钮,方法都进入准备状态,访问主页一次,后台的方法被调用,这里也显示方法的调用次数和耗用的时间.上面的几个列,列出的就是 方法名称,调用次数,共计耗时(ms),单次平均时间(ns).
根据上面的数据.优化程序,提高效率.
loadRunner使用
loadRunner是测试并发的工具.
loadRunner分为两个部分,一个是录制脚本的程序.一个执行脚本进行测试的部分.
并发测试有两个参数可以设置: 1,并发的数量 2,每个并发连续运行的次数
运行完毕后,从图表中可以查看单次请求的响应时间.请注意并发并不是盲目设置的,并发的数目要以weblogic的线程多少为基准.对于高并发的测试,如果测试的响应时间和要求的响应时间相差遥远,请耐心细致的进行程序调优,然后在进行测试.并逐渐的调高weblogic线程数和测试的并发数.是一个反复的过程.
JProbe使用
JProbe提供了更宽阔的空间.不局限于weblogic服务器.可以设置任何服务器. Probe Suite 是Java最佳的性能调优组件工具包,提供了高级的、高灵活性的Java应用程序调优,而不管其在本地运行还是在远程运行。
  组件包中包括:
  JProbe Profiler(诊断Java代码中性能瓶颈)、
  JProbe Memory Debugger(发现Java代码中的内存泄漏)、
  JProbe Threadalyzer(多线程分析)
  JProbe Coverage(代码覆盖分析).
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP