zoukankan      html  css  js  c++  java
  • JVM常用虚拟机命令汇总


    title: JVM常用虚拟机命令汇总
    comments: false
    date: 2019-07-22 11:45:33
    description: 总结一下常用的JVM虚拟机启动命令。
    categories: GC


    概述

    本文主要说明一些 JVM 启动命令的作用以及使用方法。

    在 Java 程序启动时,我们可以通过加入参数来让虚拟机打印一些虚拟机参数。

    • -XX:+PrintFlagsInitial:打印虚拟机的初始化参数(也就是XXX的默认值)
    • -XX:+PrintFlagsFinal:打印虚拟机的参数最终生效的的值
    • -XX:+PrintCommandLineFlags:打印命令行中加入的参数

    如果对某个参数有兴趣的话,直接百度一下这个参数,大部分都讲的不错。

    垃圾收集器相关

    下面参数都是在 server 模式下运行测试的。

    • 使用 ParNew + CMS 收集器:-XX:+UseParNewGC -XX:+UseMarkSweepGC
    • 使用 Serial + Serial Old 收集器:-XX:+UseSerialGC
    • 使用 Parallel Scavenge + Parallel Old 收集器:-XX:+UseParallelGC -XX:+UseParallelOldGC
    • 使用 Serial + CMS 收集器:ERROR!!!
    • 使用 G1 收集器:-XX:+UseG1GC

    通用参数

    • -XX:PretenureSizeThreshold=0:对象的大小如果大于这个值的话,会直接在老年代中分配。如果是0的话,表示所有对象都在Eden去分配。

    ParNew 收集器相关

    • -XX:ParallelGCThreads:限制垃圾收集的线程数。

    Parallel Scavenge 收集器相关

    • -XX:MaxGCPauseMillis:控制最大垃圾收集停顿时间。
    • -XX:GCTimeRatio:直接设置吞吐量大小。

    CMS 收集器相关

    • -XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对老年代的压缩,默认是 true。
    • -XX:CMSFullGCsBeforeCompaction=0:在开启对老年代压缩的情况下,设置多少次 Full GC 后,对老年代进行压缩。
    • -XX:CMSInitiatingOccupancyFraction=90:用来设置 CMS 垃圾收集器的触发百分比,太高容易造成 “Concurrent Mode Failure” 异常,太低的话,会有频繁的老年代 GC 出现。

    内存参数相关

    • -Xms1g:设置虚拟机的初始内存,默认是物理内存的 1/64。
    • -Xmx1g:设置虚拟机的最大可用内存,默认是物理内存的 1/4。
    • -Xmn512m:设置新生代的大小。
    • -XX:MetaspaceSize=128m:默认是21m,调整 MetaSpace 的大小。
    • -Xss1m:设置每个线程堆栈的大小,虚拟机的最小值限制为 160k,如果小于这个值,则会报错:The stack size specified is too small, Specify at least 160k
    • -XX:NewRatio=2:设置新生代和老年代的比值,默认是2,即如果堆是300兆,则年轻代占100兆。
    • -XX:SurvivorRatio=8:设置新生代中 Eden 区与 Survivor 区的比值,默认为8,即 Eden 占 8 份,S1 占 1 份,S2 占 1 份。如果新生代时10兆,则 Eden 区占 8 兆,其余两个各占 1 兆。
    • -XX:MetaspaceSize=100m 设置元空间大小,默认是21兆左右,
    • -XX:+UseAdpptiveSizePoliy:使并行收集器自动选择年轻代和老年代的大小,以及 Survivor 区的比例,我的环境中默认是false。

    GC日志相关

    • -XX:+PrintGC:打印简单的 GC 日志。
    • -XX:+PrintGCDetails:打印详细的 GC 日志。
    • -XX:+PrintGCTimeStamps :打印自虚拟机启动以来所经过的时间。
    • -XX:+PrintGCApplicationConcurrentTime :打印每次垃圾回收前,程序未中断的执行时间。
    • -XX:+PrintGCApplicationStoppedTime:打印垃圾回收期间程序暂停的时间。
    • -XX:+PrintHeapAtGC:在发生 GC 时打印出堆栈详情。
  • 相关阅读:
    【转】卡特兰数四个公式(简单)
    【基础算法-ST表】入门 -C++
    【题解】[Nwerc 2006]escape -C++
    C#高级编程第11版
    C#高级编程第11版
    C#高级编程第11版
    C#高级编程第11版
    C#高级编程第11版
    109th LeetCode Weekly Contest Knight Dialer
    109th LeetCode Weekly Contest Number of Recent Calls
  • 原文地址:https://www.cnblogs.com/wuqinglong/p/11237213.html
Copyright © 2011-2022 走看看