2.JVM的参数配置

一、JVM参数类型

在生产环境中,一般情况下配置的参数有3种类型的:

  1. -X:非标准参数,不是每个虚拟机都实现了,例如-Xms2g
  2. -XX:非稳定性参数,例如-XX:NewSize=2g 
    使用方式有下面3种: 
    -XX:+<option> 开启option参数 
    -XX:-<option> 关闭option参数 
    -XX:-<option>=<value> 将option参数的值设置为value
  3. -D:用于自定义参数,设置的值可以通过System.getProperty(String name)方法获取,例如:-Dlog.dir=/data/log

通过java -h命令,可以查看所有标准参数,常见的有-D、-version、-classpath 

通过java -X命令,可以查看所有-X参数,常见的有-Xms、-Xmx、-Xss 

二、内存管理参数

1、堆栈大小设置

参数 默认值 使用介绍 示例
-Xms 堆内存的1/64 堆的最小值 -Xms6g
-Xmx 堆内存的1/4 堆的最大值 -Xmx6g
-Xss 栈的大小 -Xss1m
-XX:NewSize 堆中新生代的初始值 -XX:NewSize=2g
-XX:MaxNewSize 堆中新生代的最大值 -XX:MaxNewSize=4g
-XX:PermSize 方法区的初始值 -XX:PermSize=256g
-XX:MaxPermNewSize 方法区的最大值 -XX:MaxPermSize=512g
-XX:NewRatio 2 新生代和老年代的比值 -XX:NewRatio=4
(表示新生代:老年代=1:4,
即新生代占堆的1/5)
-XX:SurvivorRatio 8 新生代中surviivor区和eden区的比值 -XX:SurvivorRatio=8
(表示survivor:eden=1:8,
即一个survivor占新生代的1/10)
-XX:+HeapDumpOnOutOfMemoryError 默认关闭 发生OOM时自动dump堆转储文件  
-XX:HeapDumpPath dump文件路径 -XX:HeapDumpPath=/data/log/heapdump.bin

2、垃圾回收设置

参数 默认值 使用介绍 示例
-XX:+UseSerialGC Client模式的虚拟机默认开启 Client模式下,使用Serial+Serial Old的收集器组合进行垃圾回收  
-XX:+UseParNewGC 默认关闭 使用ParNew+Serial Old的收集器组合进行垃圾回收  
-XX:+UseParallelGC server模式的虚拟机默认开启 使用Parallel Scavenge+Serial Old的收集器组合进行垃圾回收  
-XX:+UseParallelOldGC 默认关闭 使用Parallel Scavenge+Parallel Old的收集器组合进行垃圾回收  
-XX:+UseConcMarkSweepGC 默认关闭 使用ParNew+CMS+Serial Old的收集器组合进行垃圾回收。如果CMS收集器出现Concurrent Mode Failure,则Serial Old收集器将作为后备收集器 -XX:+UseConcMarkSweepGC
-XX:ParallelCMSThreads 小于等于8个CPU时默认值为CPU的个数,多于8个时比CPU的数量少 设置GC时进行内存回收的线程数 -XX:ParallelCMSThreads=2
-XX:+PrintGCDetails 默认关闭 发生垃圾回收时打印内存回收日志  
-XX:+PrintGCTimeStamps 默认关闭 发生垃圾回收时打印回收时间  
-Xloggc 设置GC记录的文件 Xloggc:/data/log/tomcat/gc.log
-XX:+UseGCLogFileRotation 默认关闭 启用GC日志文件的自动转储  
-XX:GCLogFileSize 默认关闭 控制GC日志文件的大小 -XX:GCLogFileSize=1M

3、多线程相关参数

参数 默认值 使用介绍 示例
-XX:+UsedBiasedLocking 默认开启 是否使用偏向锁  
最后,给大家提供一个8核8G的机器常用的配置:
-Xms6g
-Xmx6g
-Xss1m
-XX:NewSize=2g
-XX:MaxNewSize=4g
-XX:NewRatio=4g
-XX:SurvivorRatio=8
-XX:+AggressiveOpts
-XX:+UseBiasedLocking
-XX:+UseConcMarkSweepGC
-XX:ParallelCMSThreads=2
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:/data/log/gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/data/log/heapdump.bin
-XX:+CMSParallelRemarkEnabled
-XX:+ScavengeBeforeFullGC
-XX:CMSInitiatingOccupancyFraction=75

原文地址:https://www.cnblogs.com/freelymen/p/9291012.html

时间: 2024-08-05 05:50:17

2.JVM的参数配置的相关文章

JVM相关参数配置和问题诊断&lt;转&gt;

原文连接:http://blog.csdn.net/chjttony/article/details/6240457 1.Websphere JVM相关问题诊断: 由JVM引起的Websphere问题主要有应用服务器宕机和性能下降,JVM相关问题的特征如下: (1).Websphere应用服务器停止响应: a.Websphere服务器宕机. b.Websphere进程挂起. c.JVM内存溢出. (2).性能下降: JVM进程号(process Id)不停地改变. 2.诊断JVM相关问题所需文件

JVM常用参数配置

Trace跟踪参数 -verbose:gc -XX:+printGC 打印GC的简要信息 -XX:+PrintGCDetails 打印GC详细信息 -XX:+PrintGCTimeStamps 打印CG发生的时间戳 -Xloggc:log/gc.log 指定GC log的位置,以文件输出 XX:+TraceClassLoading 监控类的加载 -XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息 堆的分配参数 -Xmx –Xms  指定最大堆和最小堆 -X

JVM常用参数配置---摘自《深入理解java虚拟机》《Java性能权威指南》

//常见配置汇总 //堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置新生代大小 -XX:NewRatio=n:设置新生代和老年代的比值.如:为3,表示新生代与老年代比值为1:3,新生代占整个新生代老年代和的1/4 -XX:SurvivorRatio=n:新生代中Eden区与两个Survivor区的比值.注意Survivor区有两个.如:3,表示Eden:Survivor=3:2,一个Survivor区占整个新生代的1/5 -XX:PermSize=n:设置永

深入理解JVM虚拟机10:JVM常用参数以及调优实践

微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔讲点Docker.ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复”Java“即可领取 Java基础.进阶.项目和架构师等免费学习资料,更有数据库.分布式.微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南.Java程序员面试指

线上机器JVM参数配置

记录一下线上机器的JVM参数配置: CATALINA_OPTS="$CATALINA_OPTS -server -Djava.awt.headless=true -Xms2560m [JVM初始分配的堆内存 2.5G]-Xmx2560m [JVM最大可用堆内存 2.5G]-Xss256k [每个线程的堆栈大小]-XX:PermSize=128m [永久代大小]-XX:MaxPermSize=384m [永久代最大值]-XX:NewSize=1024m [新生代初始内存大小]-XX:MaxNewS

Jvm参数配置

一.非稳态选项使用说明 -XX:+<option> 启用option -XX:-<option> 不启用option -XX:<option>=<number> 设定option的值为数字类型,可跟单位,例如 32k, 1024m, 2g -XX:<option>=<string> 设定option的值为字符串,例如-XX:HeapDumpPath=./dump.core 二.Java相关的JVM内存参数 -Xms :设置Java堆栈

jvm的内存分布,参数配置 和 GC处理机制

转载 url: http://blog.csdn.net/ning109314/article/details/10411495 url:http://www.cnblogs.com/sunada2005/p/3577799.html url:http://www.open-open.com/lib/view/open1437834571349.html url:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037056.html url

jvm调优具体参数配置

3.JVM参数 在JVM启动参数中,可以设置跟内存.垃圾回收相关的一些参数设置,默认情况不做任何设置JVM会工作的很好,但对一些配置很好的Server和具体的应用必须仔细调优才能获得最佳性能.通过设置我们希望达到一些目标: GC的时间足够的小 GC的次数足够的少 发生Full GC的周期足够的长 前两个目前是相悖的,要想GC时间小必须要一个更小的堆,要保证GC次数足够少,必须保证一个更大的堆,我们只能取其平衡. (1)针对JVM堆的设置,一般可以通过-Xms -Xmx限定其最小.最大值,为了防止

JVM参数配置详解

1. JVM中的年轻代,年老代和持久代区别与联系 JVM中的GC算法采用的是分代收集的策略,即将内存分为几个区域,将不同生命周期的对象放在不同区域里.如下所示: (1)在GC收集的时候,频繁收集生命周期短的区域(年轻代): (2)比较少的收集生命周期比较长的区域(年老代): (3)基本不收集的永久区(持久代). 年轻代分为1个Eden区和2个Survivor区,新建对象都保存在Survivor区中.当Eden区满则进行Minor GC,将Eden区和一个Survivor区清理到年老代中.这时不能