jvm——参数解释

https://www.oracle.com/technetwork/java/tuning-139912.html#section4.2.5

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

-Xms4g
jvm 初始堆内存大小
-Xmx4g
jvm 最大堆内存大小
-Xmn2g
为新生代分配内存大小
-XX:SurvivorRatio=10
eden:survivor=10:2
**-XX:MetaspaceSize=128m**
设置分配的类元数据空间的大小,该空间将在第一次超出时触发垃圾回收。根据使用的元数据量,增加或减少垃圾收集的阈值。默认大小取决于平台。
**-XX:MaxMetaspaceSize=500m**
设置可以为类元数据分配的最大本机内存量。默认情况下,大小不受限制。应用程序的元数据量取决于应用程序本身,其他正在运行的应用程序以及系统上可用的内存量。
-XX:MaxDirectMemorySize=512m
设置新I / O(java.nio包)直接缓冲区分配的最大总大小(以字节为单位)。附加字母k或K表示千字节,m或M指示兆字节,g或G指示千兆字节。
默认情况下,大小设置为0,这意味着JVM会自动选择NIO直接缓冲区分配的大小。
-XX:ReservedCodeCacheSize=240m
设置JIT编译代码的最大代码缓存大小(以字节为单位)。附加字母k或K表示千字节,m或M指示兆字节,g或G指示千兆字节。
默认的最大代码缓存大小为240 MB; 如果使用该选项禁用分层编译-XX:-TieredCompilation,则默认大小为48 MB。
此选项的限制为2 GB; 否则,会产生错误。最大代码缓存大小不应小于初始代码缓存大小; 看到选项-XX:InitialCodeCacheSize。此选项相当于-Xmaxjitcodesize。
-XX:+UseConcMarkSweepGC
允许为旧一代使用CMS垃圾收集器。Oracle建议您在spam(-XX:+UseParallelGC)垃圾收集器无法满足应用程序延迟要求时使用CMS垃圾收集器。
G1垃圾收集器(-XX:+UseG1GC)是另一种选择。
默认情况下,禁用此选项,并根据计算机的配置和JVM的类型自动选择收集器。
启用此选项后,将-XX:+UseParNewGC自动设置该选项,您不应禁用该选项,因为JDK 8中已弃用以下选项组合:-XX:+UseConcMarkSweepGC -XX:-UseParNewGC。
**-XX:+UseCMSCompactAtFullCollection**
当cms顶不住要进行fullgc时,开启内存碎片的合并整理过程,内存整理的过程是无法并发的,会导致停顿,这岂不是每一次cms都会有一次内存碎片整理?
**-XX:CMSMaxAbortablePrecleanTime=5000**
这个在官网文档没搜到?!
指定cms-concurrent-abortable-preclean阶段执行的时间
XX:+CMSClassUnloadingEnabled
使用并发标记清除(CMS)垃圾收集器时启用类卸载。默认情况下启用此选项。要禁用CMS垃圾收集器的类卸载,请指定-XX:-CMSClassUnloadingEnabled。
-XX:CMSInitiatingOccupancyFraction=80
设置启动CMS收集周期的旧代占用率(0到100)的百分比。默认值设置为-1。任何负值(包括默认值)意味着-XX:CMSTriggerRatio用于定义初始占用率的值。
-XX:+UseCMSInitiatingOccupancyOnly
允许使用占用值作为启动CMS收集器的唯一标准。默认情况下,此选项已禁用,可能会使用其他条件。
-XX:+ParallelRefProcEnabled
启用并行参考处理。默认情况下,禁用此选项。
-XX:+DisableExplicitGC
启用禁用处理呼叫的选项System.gc()。默认情况下禁用此选项,这意味着System.gc()将处理调用。如果System.gc()禁用了对调用的处理,则JVM仍会在必要时执行GC。
-XX:+ExplicitGCInvokesConcurrent
允许使用System.gc()请求调用并发GC 。默认情况下禁用此选项,并且只能与该-XX:+UseConcMarkSweepGC选项一起启用。
-Dsun.rmi.dgc.server.gcInterval=2592000000
-Dsun.rmi.dgc.client.gcInterval=2592000000
-verbose:gc
显示有关每个垃圾回收(GC)事件的信息。
-Xloggc:${APP_HOME}/logs/gc.log
设置应将重定向的GC事件信息重定向到的文件以进行日志记录。
写入此文件的信息类似于-verbose:gc自每个记录事件之前的第一个GC事件以来经过的时间的输出。
如果两者都使用相同的命令,则该-Xloggc选项将覆盖。-verbose:gcjava
-XX:+PrintGCDetails
允许在每个GC上打印详细消息。默认情况下,禁用此选项。
-XX:+PrintGCDateStamps
允许在每个GC上打印日期戳。默认情况下,禁用此选项。-XX:+PrintTenuringDistribution
-XX:+HeapDumpOnOutOfMemoryError
允许在每个GC上打印详细消息。默认情况下,禁用此选项
-XX:HeapDumpPath=${APP_HOME}/logs/java_pid_%p.hprof
设置-XX:+HeapDumpOnOutOfMemoryError选项设置时,设置用于写入堆分析器(HPROF)提供的堆转储的路径和文件名。
默认情况下,该文件在当前工作目录中创建,并且名为java_pidpid.hprof,其中pid是导致错误的进程的标识符。
以下示例显示如何显式设置默认文件(%p表示当前进程标识符):
-XX:HeapDumpPath = / java_pid%p.hprof
以下示例显示如何将堆转储文件设置为/var/log/java/java_heapdump.hprof:
-XX:HeapDumpPath = /无功/日志/ JAVA / java_heapdump.hprof
-XX:ErrorFile=${APP_HOME}/logs/hs_err_%p.log
指定发生不可恢复的错误时写入错误数据的路径和文件名。默认情况下,此文件在当前工作目录中创建,并命名为hs_err_pidpid.log,其中pid是导致错误的进程的标识符。以下示例显示如何设置默认日志文件(请注意,进程的标识符指定为%p):

-XX:错误文件= / hs_err_pid%p.log
以下示例显示如何将错误日志设置为/var/log/java/java_error.log:

-XX:错误文件= /无功/日志/ JAVA / java_error.log
如果无法在指定目录中创建文件(由于空间不足,权限问题或其他问题),则会在操作系统的临时目录中创建该文件。临时目录是/tmp。
-XX:+PrintCommandLineFlags
允许打印出现在命令行上的符合人体工程学选择的JVM标志。
了解JVM设置的人体工程学值(例如堆空间大小和选定的垃圾收集器)可能很有用。默认情况下,禁用此选项并且不打印标志。
-XX:+UseCompressedOops
禁用压缩指针的使用。默认情况下,启用此选项,并在Java堆大小小于32 GB时使用压缩指针。
启用此选项时,对象引用表示为32位偏移而不是64位指针,这通常会在运行Java堆大小小于32 GB的应用程序时提高性能。此选项仅适用于64位JVM。
当Java堆大小大于32GB时,也可以使用压缩指针。请参阅-XX:ObjectAlignmentInBytes选项。
-XX:-UseBiasedLocking
禁用使用偏置锁定。一些具有大量无竞争同步的应用程序可以在启用此标志的情况下获得显着的加速,而具有某些锁定模式的应用程序可能会看到减速。
有关偏置锁定技术的更多信息,请参阅Java调优白皮书中的示例http://www.oracle.com/technetwork/java/tuning-139912.html#section4.2.5
默认情况下,启用此选项。
-XX:-OmitStackTraceInFastThrow
-XX:AutoBoxCacheMax=20000
-XX:+AlwaysPreTouch
-Djava.awt.headless=true
-XX:-UseCounterDecay
-XX:-TieredCompilation
禁用分层编译。默认情况下,启用此选项。只有Java HotSpot Server VM支持此选项。
-Djava.security=file:/dev/urandom
-Dsun.net.client.defaultConnectTimeout=10000
-Dsun.net.client.defaultReadTimeout=30000
-Dproject.name=${PROJECT_NAME}
-Dapp.id=${PROJECT_NAME}
-Denv=prod
-Xss:线程堆栈的大小
设置线程堆栈大小(以字节为单位)。附加字母k或K表示KB,m或M表示MB,g或G表示GB。默认值取决于平台:
Linux / ARM(32位):320 KB
Linux / i386(32位):320 KB
Linux / x64(64位):1024 KB
OS X(64位):1024 KB
Oracle Solaris / i386(32位):320 KB
Oracle Solaris / x64(64位):1024 KB
以下示例以不同的单位将线程堆栈大小设置为1024 KB:
-Xss1m
-Xss1024k
-Xss1048576
此选项相当于-XX:ThreadStackSize。
-Xverify:none
禁止字解码验证过程(编译代码人为可靠时,禁掉字解码验证过程)
-Xint
禁止编译器运作(强烈不建议使用)
-Xcomp
强制虚拟机运行于编译模式,优先采用编译模式,但是解释器仍然要在编译器无法进行的情况下介入执行过程
-XX:CompileThreashod
设定方法调用计数器阈值,超过该阈值时该方法被判定为热点代码
-XX:DoEscapeAnalysis
开启逃逸分析
原文地址:https://www.cnblogs.com/gaoquanquan/p/10926792.html