`

jvm 参数设置

    博客分类:
  • jvm
 
阅读更多

1: heap size 
a: -Xmx 
指定jvm的最大heap大小,如:-Xmx2g 

b: -Xms 
指定jvm的最小heap大小,如:-Xms1g 

c: -Xmn 
指定jvm中New Generation的大小,如:-Xmn256m 

d: -XX:PermSize 
指定jvm中Perm Generation的最小值,如:-XX:PermSize=32m 

e: -XX:MaxPermSize 
指定Perm Generation的最大值,如:-XX:MaxPermSize=64m 

f: -Xss 
指定线程桟大小,如:-Xss128k 

g: -XX:NewRatio 
指定jvm中Old Generation heap size与New Generation的比例,在使用CMS GC的情况下此参数失效, 如:-XX:NewRatio=2 

h: -XX:SurvivorRatio 
指定New Generation中Eden Space与一个Survivor Space的heap size比例,-XX:SurvivorRatio=8,那么在总共New Generation为10m的情况下,Eden Space为8m 

i: -XX:MinHeapFreeRatio 
指定jvm heap在使用率小于n的情况下,heap进行收缩,Xmx==Xms的情况下无效,如:-XX:MinHeapFreeRatio=30 

j: -XX:MaxHeapFreeRatio 
指定jvm heap在使用率大于n的情况下,heap进行扩张,Xmx==Xms的情况下无效,如:-XX:MaxHeapFreeRatio=70 

k: -XX:LargePageSizeInBytes 
指定Java heap的分页页面大小,如:-XX:LargePageSizeInBytes=128m 

2: garbage collector 
a: -XX:+UseParallelGC 
指定在New Generation使用parallel collector,并行收集,同时启动多个垃圾回收thread,不能和CMS gc一起使用.系统吨吐量优先,但是会有较长长时间的app pause,后台系统任务可以使用此gc 

b: -XX:ParallelGCThreads 
指定parallel collection时启动的thread个数,默认是物理processor的个数,如:-xx:ParallelGCThreads=8 

c: -XX:+UseParallelOldGC 
指定在Old Generation使用parallel collector 

d: -XX:+UseParNewGC 
指定在New Generation使用parallel collector,是UseParallelGC的gc的升级版本,有更好的性能或者优点,可以和CMS gc一起使用 

e: -XX:+CMSParallelRemarkEnabled 
在使用UseParNewGC的情况下,尽量减少mark的时间 

f: -XX:+UseConcMarkSweepGC 
指定在Old Generation使用concurrent cmark sweep gc,gc thread和app thread并行,所以称作concurrent.app pause时间较短,适合交互性强的系统,如web server 

g: -XX:+UseCMSCompactAtFullCollection 
在使用concurrent gc的情况下,防止memory fragmention,对live object进行整理,使memory碎片减少 

h: -XX:CMSInitiatingOccupancyFraction=n 
指示在old generation在使用了n%的比例后,启动concurrent collector,默认值是68,如:-XX:CMSInitiatingOccupancyFraction=70 
有个bug,在低版本的jvm上出现,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6486089 

i: -XX:+UseCMSInitiatingOccupancyOnly 
指示只有在old generation在使用了初始化的比例后concurrent collector启动收集 

3:others 
a: -XX:MaxTenuringThreshold 
指定一个object在经历了n次young gc后转移到old generation区,在linux64的java6下默认值是15,此参数对于throughput collector无效,如:-XX:MaxTenuringThreshold=31 

b: -XX:+DisableExplicitGC 
禁止java程序中的full gc,如System.gc()的调用 

c: -XX:+UseFastAccessorMethods 
原始类型get,set方法的优化 

d: -XX:+PrintGCDetails 
打应垃圾收集的情况如: 
[GC 15610.466: [ParNew: 229689K->20221K(235968K), 0.0194460 secs] 1159829K->953935K(2070976K), 0.0196420 secs] 

e: -XX:+PrintGCTimeStamps 
打应垃圾收集的时间情况,如: 
[Times: user=0.09 sys=0.00, real=0.02 secs] 

f: -XX:+PrintGCApplicationStoppedTime 
打应垃圾收集时,系统的停顿时间,如: 
Total time for which application threads were stopped: 0.0225920 seconds 

4  -XX:+UseCompressedOops 
    压缩指针  64位机器,JDK1.6支持

 

-XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩。

 

-XX:CMSFullGCsBeforeCompaction=0:上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩

 

 

常用配置

1.响应时间优先

  -Xmx2G -Xms2G -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Xloggc:gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

 

 -Xmx4g -Xms4g -Xmn2g -XX:PermSize=256m -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=20 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiat

ingOccupancyFraction=70 -XX:CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError   -verbose:gc -XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=5000 -XX:+DisableExplicitGC -XX:+PrintGCDetails -Xlog:gc.log

 

分享到:
评论

相关推荐

    jvm参数设置_JVM参数设置_

    JVM参数设置是优化Java应用性能的关键环节,它可以帮助我们控制JVM的行为,如内存分配、垃圾回收策略、线程调度等。下面将详细介绍一些重要的JVM参数及其作用。 1. 内存设置: - `-Xms` 和 `-Xmx`:这两个参数用于...

    jvm参数设置

    ### JVM参数设置详解 在Java应用开发与维护过程中,JVM(Java虚拟机)的配置至关重要,它直接影响到应用程序的性能表现与稳定性。本文将基于提供的文件内容,深入解析Linux环境下JVM的基本参数设置方法及原理。 ##...

    JVM参数设置

    JVM参数设置对于调整应用程序的性能、优化资源利用和确保系统稳定性至关重要。本篇文章将深入探讨JVM参数设置的各个方面。 首先,JVM参数主要分为两大类:标准参数和非标准参数。标准参数以“-X”或“-XX:”开头,...

    JVM参数设置详细说明

    JVM参数设置是Java应用程序优化的关键环节,直接影响到程序的性能和稳定性。下面将详细解释提供的JVM参数及其对性能的影响。 1. **堆大小设置**: - `-Xmx` 和 `-Xms` 用于设定JVM的最大堆(`Max Heap Size`)和最小...

    tomcat jvm参数配置

    在Windows环境下,JVM参数设置有两种情况: - **对于解压版本的Tomcat**,修改`bin/catalina.bat`文件,具体是在`set CURRENT_DIR=%cd%`行后添加JVM参数。 - **对于安装版的Tomcat**,需通过修改注册表来实现。打开...

    was使用及参数设置

    was使用及参数设置 was使用及参数设置 was使用及参数设置

    myeclipsejava虚拟机jvm参数设置

    非堆内存的初始大小和最大大小可以通过`-XX:PermSize`和`-XX:MaxPermSize`来设置,但需要注意,这些参数在Java 8之后已不再适用,因为永久代已被元空间取代。对于元空间,JVM会根据需要自动调整大小,但可以使用`-XX...

    JVM 参数设置详解

    This document is a compilation of all the JVM options for various versions of the JVM on primarily SPARC/Solaris Platform. The descriptions for each option are taken mostly verbatim from the reference...

    eclipse中对jvm进行设置

    - 参数设置错误,例如`-Xms`大于`-Xmx`,或者`-XX:PermSize`大于`-XX:MaxPermSize`。 - 总内存需求超过了JVM内存的最大限制,这可能受到操作系统或物理内存的约束。 3. **eclipse.ini配置**: 在eclipse.ini文件...

    关键业务系统JVM参数推荐

    本文将详细介绍一些常用的JVM参数设置,这些参数适用于线上关键业务系统,并且具有较高的通用性。 #### 二、学习资源推荐 1. **开源项目启动脚本**:参考成熟的开源项目如ElasticSearch和Cassandra的启动脚本可以...

    Linux简单调优与JVM参数.docx

    1. JVM 参数设置 JVM 参数的设置是指对 JVM 应用程序的配置,以提高应用程序的运行效率。例如,我们可以将 -Xmx 设置为 12g,以提高 JVM 的堆大小。又如,我们可以将 -XX:LargePageSizeInBytes 设置为 128m,以提高...

    tomcat6.0 修改启动内存设置 java jvm参数配置

    ### Tomcat 6.0 修改启动内存设置及 Java JVM 参数配置详解 #### 一、背景与目的 在部署和运行 Java Web 应用时,合理地配置应用服务器(如 Apache Tomcat)的内存是非常重要的。这不仅可以提升应用程序的性能,还...

    eclipse与tomcat的JVM设置

    1. **查看当前配置**:首先查看当前JVM参数设置是否合理。 2. **调整JVM参数**:根据应用程序的实际需求调整JVM参数。 - 例如:可以将初始堆内存大小设为256MB,最大堆内存大小设为512MB。 - 将永久代的初始大小设...

    jvm参数调优-jvmSample.zip

    在"jvmSample-master"项目中,我们可以通过模拟不同的负载情况来测试不同JVM参数设置下的性能表现。例如,调整-Xms和-Xmx参数,观察程序启动速度和运行稳定性;使用-XX:NewRatio和-XX:SurvivorRatio调整年轻代和老年...

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    本系列课程从JVM基础到高级实战,老师手把手教你如何进行JVM...1.3JVM参数设置思路1.4JVM调优常用指令说明 第七节:JVM项目实战 1.1案例背景 1.2排查步骤 1.3.arthas 1.3.1.arthas简介 1.3.2.arthas实战 1.3总结

    JVM常用参数设置

    本文将深入探讨JVM的常用参数设置,以及它们如何影响Java应用程序的运行。 一、JVM内存设置 1. **堆内存**: - `-Xms`:初始堆大小,例如`-Xms256m`表示初始分配256MB内存。 - `-Xmx`:最大堆大小,例如`-Xmx...

    设置Eclipse的JVM参数

    ### 设置Eclipse的JVM参数 #### 一、引言 在进行Java开发时,Eclipse作为一款广泛使用的集成开发环境(IDE),其性能优化对于提高开发效率和应用稳定性至关重要。其中,设置合适的JVM(Java虚拟机)参数是优化...

    蚂蚁课堂-JVM快速入门2

    理解JVM参数设置,可以帮助开发者在面临性能瓶颈时做出明智决策,优化应用程序的内存使用,预防和处理内存溢出问题。同时,这也是面试中常见的话题,掌握这部分知识将大大提高你的专业素养。 总的来说,“蚂蚁课堂-...

    java学习之JVM调优相关说明

    将机器的JVM参数设置到最优 一般的Java都不需要进行JVM优化 减少代码层面造成的GC问题(STW) 减少使用全局变量、大对象以及减少创建对象的数量 通过代码解决GC情况比优化JVM参数更好 架构和代码调优等级优先于JVM...

Global site tag (gtag.js) - Google Analytics