标签:epg 左右 详细 参数 fail 直接 暂停 百度一下 老年
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 模式下运行测试的。
-XX:+UseParNewGC -XX:+UseMarkSweepGC
-XX:+UseSerialGC
-XX:+UseParallelGC -XX:+UseParallelOldGC
-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。-XX:+PrintGC
:打印简单的 GC 日志。-XX:+PrintGCDetails
:打印详细的 GC 日志。-XX:+PrintGCTimeStamps
:打印自虚拟机启动以来所经过的时间。-XX:+PrintGCApplicationConcurrentTime
:打印每次垃圾回收前,程序未中断的执行时间。-XX:+PrintGCApplicationStoppedTime
:打印垃圾回收期间程序暂停的时间。-XX:+PrintHeapAtGC
:在发生 GC 时打印出堆栈详情。标签:epg 左右 详细 参数 fail 直接 暂停 百度一下 老年
原文地址:https://www.cnblogs.com/wuqinglong/p/11237213.html