weblogic培训笔记(三)java虚拟机配置

u       JRockitBEA公司开发的Intel平台之上的高性能以及高可管理性的jvm产品Intel平台上使用JRockit无疑会大大的提高效率。使用向导建立server的配置的时候,可以选择JRockit作为该server的虚拟机,另外,也可以在域的startWebLogic.cmd或者startWebLogic.sh脚本中配置使用JRockit

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

使用JRockit

set JAVA_VENDOR=BEA

set JAVA_HOME=c:\bea\jrockit81sp4_142_05

使用Sunjvm

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

可取值globallocal,定义使用本地线程还是全局线程。

global,在最大堆尺寸比较小时(小于<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="128" unitname="m"><span lang="EN-US">128M</span></chmetcnv>)或者应用程序大量使用了线程时使用。
local
,在最大堆尺寸比较大时(大于<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="128" unitname="m"><span lang="EN-US">128M</span></chmetcnv>)或者应用程序少量使用了线程时使用。

每个本地线程区都要消耗大约2K的内存,如果大量地使用了线程,本地线程不但会造成内存空间浪费,而且还会造成堆碎片。使用全局线程机制会减少堆碎片,但在内存分配方面速度要慢一些。

-Xbootclasspath

指定类搜索路径,可以是ZIPJAR文件,以;或:分隔

-Xcleartype

定义内存清理时机,可取值gc, local, allocgc表示在垃圾回收时清理内存;local表示时分配一块local线程区时清理;alloc表示内存区要被分配给其它对象时清理

-Xgc

选择要使用的垃圾回收器的类型,可取值:

gencopy:分代复制收集(默认)适合调试期间使用

singlecon:单空间并发,无中断并发

gencon:世代并发,暂停时间最短

parallelparallel并行回收器,会导致应用程序间歇暂停,但会带来最大吞吐量。

如果-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

设置初始堆大小,单位有KMG

-Xmx

设置最大堆大小,单位有KMG

建议:应设置-Xms=-Xmx以免去分配堆的时间

-Xnativethreads

使用本地线程系统,这是缺省选项

-Xnoclassgc

禁止对类作垃圾回收

-Xnohup

告诉JRockit,忽略CTRL_LOGOFF_EVENTSIGHUP事件

-Xns

设置nursery尺寸,单位有KMG

Nursery是垃圾回收器用来存放临时对象的地方,应该在保证垃圾回收暂停时间最短的情况下,尽量大的调整nursery的值。

对于-Xgc:gencopy,缺省的Nursery大小为320KB/CPU,对于10CPU的系统来说,Nursery大小为3200KB<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3.2" unitname="m"><span lang="EN-US">3.2M</span></chmetcnv>)对于-Xgc:gencon,缺省的Nursery大小为<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="10" unitname="m"><span lang="EN-US">10M</span></chmetcnv>/CPU,对于10CPU的系统来说,Nursery大小为<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="100" unitname="m"><span lang="EN-US">100M</span></chmetcnv>

-Xss

设置线程栈尺寸,单位有KMG

-Xthinthreads

使用JRockit的高性能线程系统,在IA64上不可用。

注意:瘦线程系统目前还没有全面推广,不建议使用

-Xverbose

JRockit打印更多的信息,可选的参数有:

codegencpuinfogcloadmemoryOpt

-Xverify

作完整的bytecode一级的校验

 

u       JRockit的管理控制台的使用

JRockit的启动参数中加入-Xmanagement,以便启动JRockit的时候同时启动其Management Server

JRockitbin目录下,运行console.exe程序

建立一个新的连接,连接需要监视的JRockit(监视端口默认为7090

JRockit Management Console中,将Tools/Preferences菜单中的Mode of operation属性设为developer

Method Profiler属性页中添加你所需要观察的类的成员方法

Start 按钮让 Method Profiler 开始进行统计

你可能感兴趣的:(java,虚拟机,weblogic,配置管理,Office)