bobpxp 发表于 2017-2-18 07:46:08

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

u       JRockit是BEA公司开发的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
使用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,在最大堆尺寸比较小时(小于<?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
指定类搜索路径,可以是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(<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,对于10个CPU的系统来说,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
设置线程栈尺寸,单位有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开始进行统计
页: [1]
查看完整版本: weblogic培训笔记(三)java虚拟机配置