`
paddy.w
  • 浏览: 505112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JRockit 性能优化参数

阅读更多
        转自:http://speed847.iteye.com/blog/373379。在此表示感谢,并备份一下。

        一.JRockit调优简介

        JRockit是一个自适应的JVM,它能够自动调整自己去适应底层硬件,因此对它的调优主要集中在一些需要人工干预的参数上,比如说:需要划分多少RAM给JRockit使用等。JRockit有一组非标准的-X启动选项,我们可以用它来调节 JVM。JRockit有两组主要的子系统可以被优化--内存管理系统(包括垃圾回收)和线程系统。在内存管理子系统方面,有很多调优的工作可以做。

        二.Tuning WebLogic JRockit JVM

        1.设置初始堆尺寸
可以通过-Xms:<size>m来设置初始堆大小,如果-Xmx的值小于128MB,则-Xms缺省取值为16MB;如果-Xmx设置大于128MB,则-Xms缺省值为物理内存的25%,最大不超过64M。例子:
        -Xgc:gencon -xms:64m -Xmx:64m myClass
        2.设置最大堆尺寸
可以通过-Xmx:<size>m来设置最大堆尺寸。在IA32构架下,由于操作系统给每个进程的最大内存寻址空间为1.8G,因此最大堆尺寸不能超过1.8G。在IA64构架下,就没有1.8G的限制。
        如果你的JAVA应用程序在运行时出现了Out of memory的错误,你就需要调大最大堆尺寸。如果没有设置最大堆尺寸,则缺省值为:
        a. 如果设置了-Xgc:gencopy,由最大堆尺寸是min{400, 物理内存*75%};
        b. 如果没有设置-Xgc:gencopy,由最大堆尺寸是min{1536, 物理内存*75%};
        最好手工把最大堆尺寸设置为物理内存(1024M)的75%:
        -Xgc:gencon -xms:64m -Xmx:768m myClass
        3.设置Nursery的尺寸
        可以使用-Xns:<size>来设置Nursery的尺寸,我们要在保证垃圾回收停顿时间(garbage collection-pause)尽可能短的同时,尽量加大Nursery的尺寸,这在创建了大量的临时对象时尤其重要。缺省值为:
        a. 对于-Xgc:gencopy,缺省的Nursery大小为320KB/CPU,对于10个CPU的系统来说,Nursery大小为3200KB(3.2M)
        b. 对于-Xgc:gencon,缺省的Nursery大小为10M/CPU,对于10个CPU的系统来说,Nursery大小为100M
        4.定义内存空间的清理时机
        可以使用-Xcleartype:<gc|local|alloc>来定义已经被垃圾回收的内存空间在什么时候可以被清理,支持以下三种方式:
        a. gc,在垃圾回收的同时清理内存;
        b. local,在分配了一块thread-local区域时清理内存,仅在把参数-Xallocationtype设置成local时才有用;
        c. alloc,在这块内存被分配给其它对象时清理。在IA64上目前还不支持。
        缺省值为:
        a. IA32上缺省值为alloc
        b. IA64上缺省值为gc
        5.定义线程分配的类型
        可以使用-Xallocationtype:<global|local>来定义线程分配的类型。
        a. global,在最大堆尺寸比较小时(小于128M)或者应用程序大量使用了线程时使用。
        b. local,在最大堆尺寸比较大时(大于128M)或者应用程序少量使用了线程时使用。
        缺省值:
        a. 如果设置了-Xgc:gencopy,缺省值为global
        b. 如果设置了-Xgc:siglecon,-Xgc:gencon和-Xgc:parallel,缺省值为local
        6.定义线程栈尺寸
        可以使用-Xss<size>[k|K][m|M]来定义线程栈大小。最小线程尺寸定义如下:
        a. thin threads:最小线程栈尺寸为8K,缺省为64K;
        b. native threads:最小线程栈尺寸为16K
        如果-Xss设置小于最小值,则自动使用最小值。
        缺省值:
        a. IA32系统,WIN32:64K,LINUX32:128K
        b. IA64系统,WIN64:320K,LINUX64:1M

        二.Basic Tuning Tips and Techniques

        尽管JRockit提供了一组缺省的OOTB配置选项,但最好根据实际应用情况来对JRockit作一些调整。
        1.决定你要在哪方面调优
        要考虑的因素有:
        a. 要为JRockit分配多少内存空间;
        b. 你要调优的目的是什么,是要得到更好的响应性还是更好的性能;
        2.设置堆尺寸
        对于堆尺寸来说,当然是越大越好了。如果设得不够大,就会造成Out-of-memory和内存分页错。如果同时运行了多个应用程序,建议把最小和最大堆尺寸设置成一样大。
        3.在高响应性方面的调优
        要得到更好的响应性能,应该设置
        a. 使用并发垃圾回收器。-Xgc:gencon
        b. 设置初始和最大堆大小。-Xms512m,-Xmx768m,由于使用了并发垃圾回收器,所以堆大小不会造成长时间的等待。
        c. 设置nursery尺寸。如果用到了大量的临时对象,则需要适当的调大nursery尺寸。调大nursery尺寸会导致垃圾回收的停顿时间加长,因此要注意,确保垃圾回收的停顿时间在可忍受的范围内,这个停顿时间可以通过设置-Xgcpause来查看。
        4.在高性能方面的调优
        如果要得到更好的性能,你应该:
        a. 选用并行垃圾回收器,由于并行垃圾回收器不使用nursery,因此你不必再设置-Xns,方法是加上-Xgc:parallel
        b. 把初始和最大堆尺寸设置调到尽可能的大。方法是-Xms512m, -Xmx768m。
        5.分析垃圾回收和停顿时间
        a. 使用-Xgcreport生成报表,显示垃圾回收的统计信息,从中可以看出你是不是最有效地使用了垃圾回收器。
        b. 使用-Xverbose:memory来显示在运行期间每一次垃圾回收的停顿时间。本选项仅用于调试,会产生大量的控制台输出。
        6.调整线程选项
        当大量地使用了线程时(超过100个),需要调整线程选项:
        a. 使用thin线程选项。-Xthinthreads。瘦线程模式在LINUX下非常有效。注意:瘦线程在JRockit中只是一个试验选项,不推荐广泛使用;
        b. 关闭本地分配线程的选项。-Xallocationtype:global。每个本地线程区都要消耗大约2K的内存,如果大量地使用了线程,本地线程不但会造成内存空间浪费,而且还会造成堆碎片。使用全局线程机制会减少堆碎片,但在内存分配方面速度要慢一些。
        7.分析并改善应用程序设计
        找出瓶颈方法:
        a. 使用Intel VTune工具;
        b. 使用-Xjvmpi:allocs=off,monitors=off,entryexit=off选项。

        三.Command Line Options by Name

        启动JRockit时,可以带一些-X选项,这些选项是非JVM标准的,专门用于配置JRockit的性能。
选项描述
-X显示扩展Java选项
-Xallotype-Xallocationtype可取值global和local,定义使用本地线程还是全局线程。
-Xbootclasspath指定类搜索路径,可以是ZIP和JAR文件,以;或:分隔
-Xcleartype定义内存清理时机,可取值gc, local, alloc。gc表示在垃圾回收时清理内存;local表示时分配一块local线程区时清理;alloc表示内存区要被分配给其它对象时清理
-Xgc选择要使用的垃圾回收器的类型,可取值:gencopy:generational copyingsinglecon:single spaced concurrent,单空间并发gencon:generational concurrentparallel:parallel如果-Xmx小于128M,缺省使用gencopy,否则使用gencon
-Xgcpause打印由垃圾回收器造成的停顿时间
-Xgcreport打印垃圾回收报表
-Xjvmpi是否允许JVMPI事件,这些事件有:entryexit(缺省ON)allocs(缺省ON)monitors(缺省ON)arenasdelete(缺省OFF)
-Xmanagement激活JVM中的管理服务器,在JVM的管理控制台能连接到它之前,必须先激活。
-Xms设置初始堆大小,单位有K、M、G
-Xmx设置最大堆大小,单位有K、M、G
-Xnativethreads使用本地线程系统,这是缺省选项
-Xnoclassgc禁止对类作垃圾回收
-Xnohup告诉JRockit,忽略CTRL_LOGOFF_EVENT和SIGHUP事件
-Xns设置nursery尺寸,单位有K、M、G
-Xss设置线程栈尺寸,单位有K、M、G
-Xthinthreads使用JRockit的高性能线程系统,在IA64上不可用。
-Xverbose让JRockit打印更多的信息,可选的参数有:codegen、cpuinfo、gc、load、memory、Opt
-Xverify作完整的bytecode一级的校验
分享到:
评论

相关推荐

    jrockit 服务器调优化参数及说明

    JRockit,作为Oracle公司的一款高性能Java虚拟机,以其独特的性能优化能力和自动化调优策略受到广泛关注。本文将详细探讨JRockit服务器调优的一些关键参数及其作用,旨在帮助开发者和运维人员提升Java应用的运行效率...

    JRockit (jrockit-jdk1.6.0_45-R28.2.7-4.1.0-windows-x64.exe)

    Oracle JRockit是一款高性能、优化过的...总之,Oracle JRockit是Java发展史上的一款重要产品,它在性能优化和实时分析方面树立了标杆。尽管现在已经不再更新,但它留下的技术和经验仍然影响着现代的Java虚拟机设计。

    图书:Oracle JRockit权威指南

    5. **JRockit性能调优**:提供实战性的性能调优技巧,包括代码优化、JVM参数调整、类加载器管理等,帮助提升应用的整体性能。 6. **JRockit源码分析**:部分章节可能涉及JRockit的部分源码解析,让读者更深入地理解...

    jrockit帮助文档

    - **内存配置**:正确设置堆大小和各代内存比例是优化JRockit性能的关键,需要根据实际负载进行调整。 - **并行与并发**:合理配置垃圾收集器的并发级别和并行度,平衡吞吐量与响应时间。 3. **JRockit工具集** ...

    JRockit (jrockit-jdk1.6.0_45-R28.2.7-4.1.0-linux-x64.bin)

    Oracle JRockit是一款高性能、优化过的Java虚拟机(JVM),尤其在服务器端应用和大规模分布式环境中表现出色。它由Oracle公司开发,是Java应用程序的关键组成部分,负责运行和管理Java代码。标题中的"jrockit-jdk...

    Oracle JRockit_The Definitive Guide

    - **定义**:JRockit是由BEA Systems(后被Oracle收购)开发的一款高性能Java虚拟机(JVM),专门针对服务器端的应用进行了优化。 - **特点**:JRockit在设计之初就着眼于服务器环境下的性能和稳定性,具备出色的内存...

    jrockit 手册

    Java开发人员在面对复杂的应用系统时,经常遇到性能优化的问题,而Oracle JRockit JVM作为一款高效的Java虚拟机,尤其在内存管理和垃圾回收方面表现出色。"jrockit手册"是一份宝贵的资源,旨在帮助开发者深入理解...

    Tomcat性能优化笔记

    同时,选择适合项目中间件的特定厂商JVM,如BEA JRockit、IBM JVM等,可获取更针对性的性能优化。 2. **Tomcat自身优化** - **启动参数**:通过添加"-Xms"和"-Xmx"参数来设定Tomcat的最小和最大内存分配,避免因...

    JDK11-jrockit-hotspot-migration-guide.pdf

    4. 性能优化:HotSpot 环境需要进行性能优化,以确保应用程序的性能和稳定性。 结论 JDK 11 JRockit 到 HotSpot 迁移指南提供了详细的迁移步骤和注意事项,旨在帮助用户从 JRockit 迁移到 HotSpot 虚拟机。通过...

    Oracle JRockit

    通常,这种格式的文件会包含详细的安装指南、配置参数解释、性能调优建议等内容,帮助用户更好地理解和使用Oracle JRockit。 5. **如何选择JVM**: 选择JVM应根据具体的应用需求,比如对性能敏感的系统可能更适合...

    JRockit Mission Control介绍及配置

    JRockit Mission Control 是 BEA(现已被 Oracle 收购)推出的一款强大的 Java 应用性能管理和诊断工具,特别适用于检测和解决内存泄漏问题。这个工具集在 JRockit R26.0.0 及后续版本中捆绑提供,最新版本为 2.0.1...

    JRockit JAVA内存溢出检测的使用(CHM)

    **JRockit JAVA内存溢出检测的使用** ...通过熟练掌握JRockit Mission Control,开发者可以有效地监控和优化应用程序的内存使用,提升系统性能和稳定性。而“JRockit教程.CHM”文件是学习和实践这些技巧的重要资源。

    JRockit权威指南1

    5. **配置优化**:指导读者调整JRockit JVM的参数,以提升应用程序的性能和稳定性。 此外,书中可能还会涉及JRockit的特殊功能,如动态编译(JIT)、内存管理策略、并行和并发控制等。通过阅读本书,读者不仅能深入...

    Oracle JRockit The Definitive Guide

    书中可能涵盖了JRockit的安装与配置、监控、调试、诊断、性能优化等多个方面。例如,JRockit的监控和管理工具能够帮助开发者检测Java应用的性能瓶颈,并提供了丰富的性能分析工具和方法来解决这些问题。此外,...

    Java 高性能系统常见设计与优化

    3. Java VM 优化是高性能系统设计和优化的重要部分,包括调整 JVM 的参数、使用 BEA JRockit 等。 4. 数据库设计需要根据性能权衡降低表连接数量,使用 DBMS 的 Partition 特性加快大数据量表的 SQL 操作性能,使用...

    Bea Weblogic 8.1 SP5 性能优化.doc

    综上所述,对Bea Weblogic 8.1 SP5的性能优化是一个系统性工程,涵盖JVM选择、操作系统配置和JVM参数调整等多个层面。通过精细的调优,可以显著提高服务器的运行效率,减少系统瓶颈,确保应用的稳定高效运行。

    Oracle JRockit 6 -Linux x32

    3. **启动参数**:JRockit支持多种启动参数,如开启JRockit Mission Control的监控,可以通过添加特定的JVM参数实现。 4. **性能调优**:利用JRockit Mission Control进行性能监控和调优,可以显著提升Java应用的...

    Oracle JRockit 6 Linux x64

    4. 应用配置:根据需要调整JVM参数,例如内存分配、垃圾收集策略等,以优化性能。 5. 监控与优化:利用JRockit Mission Control进行性能监控和问题排查,利用Real Time特性提高系统响应速度。 总之,Oracle JRockit...

Global site tag (gtag.js) - Google Analytics