u JRockit是BEA公司开发的Intel平台之上的高性能以及高可管理性的jvm产品,在Intel平台上使用JRockit无疑会大大的提高效率。使用向导建立server的配置的时候,可以选择JRockit作为该server的虚拟机,另外,也可以在域的startWebLogic.cmd或者startWebLogic.sh脚本中配置使用JRockit。
使用JRockit:
set JAVA_VENDOR=BEA
set JAVA_HOME=c:\bea\jrockit81sp4_142_05
使用Sun的jvm:
set JAVA_VENDOR=Sun
set JAVA_HOME=c:\bea\jdk142_05
u 与java虚拟机相关的参数配置可在startWebLogic.cmd或者startWebLogic.sh脚本中设置,在其执行java命令之前一行加入如下指令:
set JAVA_VM=%JAVA_VM% “这里加入虚拟机参数”
JRockit上的一些参数解释如下:
选项 |
描述 |
-X |
显示扩展Java选项 |
-Xallotype
-Xallocationtype |
可取值global和local,定义使用本地线程还是全局线程。
global,在最大堆尺寸比较小时(小于128M)或者应用程序大量使用了线程时使用。 local,在最大堆尺寸比较大时(大于128M)或者应用程序少量使用了线程时使用。
每个本地线程区都要消耗大约2K的内存,如果大量地使用了线程,本地线程不但会造成内存空间浪费,而且还会造成堆碎片。使用全局线程机制会减少堆碎片,但在内存分配方面速度要慢一些。 |
-Xbootclasspath |
指定类搜索路径,可以是ZIP和JAR文件,以;或:分隔 |
-Xcleartype |
定义内存清理时机,可取值gc, local, alloc。gc表示在垃圾回收时清理内存;local表示时分配一块local线程区时清理;alloc表示内存区要被分配给其它对象时清理 |
-Xgc |
选择要使用的垃圾回收器的类型,可取值:
gencopy:分代复制收集(默认)适合调试期间使用
singlecon:单空间并发,无中断并发
gencon:世代并发,暂停时间最短
parallel:parallel并行回收器,会导致应用程序间歇暂停,但会带来最大吞吐量。
如果-Xmx小于128M,缺省使用gencopy,否则使用gencon |
-Xgcpause |
打印由垃圾回收器造成的停顿时间 |
-Xgcreport |
打印垃圾回收报表 |
-Xjvmpi |
是否允许JVMPI事件,这些事件有:
entryexit(缺省ON)
allocs(缺省ON)
monitors(缺省ON)
arenasdelete(缺省OFF)
例如:-Xjvmpi:allocs=off,monitors=off,entryexit=off |
-Xmanagement |
激活JVM中的管理服务器,在JVM的管理控制台能连接到它之前,必须先激活。 |
-Xms |
设置初始堆大小,单位有K、M、G |
-Xmx |
设置最大堆大小,单位有K、M、G
建议:应设置-Xms=-Xmx以免去分配堆的时间 |
-Xnativethreads |
使用本地线程系统,这是缺省选项 |
-Xnoclassgc |
禁止对类作垃圾回收 |
-Xnohup |
告诉JRockit,忽略CTRL_LOGOFF_EVENT和SIGHUP事件 |
-Xns |
设置nursery尺寸,单位有K、M、G
Nursery是垃圾回收器用来存放临时对象的地方,应该在保证垃圾回收暂停时间最短的情况下,尽量大的调整nursery的值。
对于-Xgc:gencopy,缺省的Nursery大小为320KB/CPU,对于10个CPU的系统来说,Nursery大小为3200KB(3.2M)对于-Xgc:gencon,缺省的Nursery大小为10M/CPU,对于10个CPU的系统来说,Nursery大小为100M |
-Xss |
设置线程栈尺寸,单位有K、M、G |
-Xthinthreads |
使用JRockit的高性能线程系统,在IA64上不可用。
注意:瘦线程系统目前还没有全面推广,不建议使用 |
-Xverbose |
让JRockit打印更多的信息,可选的参数有:
codegen、cpuinfo、gc、load、memory、Opt |
-Xverify |
作完整的bytecode一级的校验 |
u JRockit的管理控制台的使用
在JRockit的启动参数中加入-Xmanagement,以便启动JRockit的时候同时启动其Management Server。
在JRockit的bin目录下,运行console.exe程序
建立一个新的连接,连接需要监视的JRockit(监视端口默认为7090)
在JRockit Management Console中,将Tools/Preferences菜单中的Mode of operation属性设为developer
在Method Profiler属性页中添加你所需要观察的类的成员方法
按Start按钮让Method Profiler开始进行统计