• jvm参数


    参数

    说明

    -Xms

    通过这个选项可以要求系统为堆内存池分配内存空间的最小值。通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值(-Xms)与最大堆内存相同,以降低垃圾回收的频度

    -Xmx

    xms参数。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

    -Xmn

    此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

    -Xnoclassgc

    这个选项用来取消系统对特定类的垃圾回收。它可以防止当这个类的所有引用丢失之后,这个类仍被引用时不会再一次被重新装载,因此这个选项将增大系统堆内存的空间

    -Xss

    设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。

     

    XX参数

     

    参数

    详细

    -XX:NewSize

    在通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值-XX:NewSize是最大堆内存(maximum heap size)的四分之一。增加这个选项值的大小是为了增大较大数量的短生命周期对象

    增加java新对象生产堆内存相当于增加了处理器的数目。并且可以并行地分配内存,但是请注意内存的垃圾回收却是不可以并行处理的

    -XX:MaxNewSize

    其功用与上面的设置新对象生产堆内存-XX:NewSize相同

    -XX:SurvivorRatio

    空间(Eden/survivor)的大小的比例。设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

    -XX:NewRatio

    设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

    -XX:MaxPermSize

    设置持久代大小

    -XX:MaxTenuringThreshold

    设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

     

     

    -XX:+UseSerialGC

    设置串行收集器

    -XX:+UseParallelGC

    设置并行收集器

    -XX:+UseParalledlOldGC

    设置并行年老代收集器

    -XX:+UseConcMarkSweepGC

    设置并发收集器

    -XX:ParallelGCThreads

    设置并行收集器收集时使用的CPU数。并行收集线程数。

    -XX:MaxGCPauseMillis

    设置并行收集最大暂停时间

    -XX:GCTimeRatio

    设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

    并发收集器设置

    -XX:+CMSIncrementalMode

    设置为增量模式。适用于单CPU情况

    -XX:+UseCMSCompactAtFullCollection

    使用并发收集器时,设置在FULL GC的时候, 对年老代的压缩;CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。可能会影响性能,但是可以消除碎片 

    -XX:CMSFullGCsBeforeCompaction

    上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理。

     -XX:CMSInitiatingOccupancyFraction

    预留足够的空间给young gc,防止从young gc 过来一个较大的内存块,而年老代无足够预留空间,无法提供内存快用于回收后的分配,引起强制的full gc,造成较长时间的线程中断 

     

    调试辅助信息打印

    -XX:+PrintGC
    -XX:+PrintGCDetails 
    -XX:+PrintGCTimeStamp
    -XX:+PrintGCApplicationStoppedTime
    -XX:PrintHeapAtGC
    -Xloggc:filename:
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:+HeapDumpBeforeFullGC
    -XX:HeapDumpPath
    -XX:+TraceClassLoading 
    -XX:+TraceClassUnloading
    -Xprof
    -Xrunhprof

    https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs

    http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm

    http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

  • 相关阅读:
    mysql5.7编译安装
    web服务部署工具使用介绍
    Clang Static Analyzer
    MySQL中character set与collation
    Linux 编译运行查找头文件和库的顺序
    git入门及使用记录
    CentOS7通过yum安装gdb8 gcc8 g++8的方法
    win10子系统设置开机启动ssh服务
    STL中map的使用
    C++逆序输出字符串
  • 原文地址:https://www.cnblogs.com/beanchoc/p/2511421.html
Copyright © 2020-2023  润新知