博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.JVM的参数配置
阅读量:5217 次
发布时间:2019-06-14

本文共 2322 字,大约阅读时间需要 7 分钟。

一、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 堆的最小值 -Xms1g
-Xmx 堆内存的1/4 堆的最大值 -Xmx1g
-Xss 栈的大小 -Xss1m
-XX:NewSize 堆中新生代的初始值 -XX:NewSize=512m
-XX:MaxNewSize 堆中新生代的最大值 -XX:MaxNewSize=512m
-XX:MetaspaceSize 方法区的初始值 -XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize 方法区的最大值 -XX:MaxMetaspaceSize=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

-XX:MetaspaceSize=8m

转载于:https://www.cnblogs.com/freelymen/p/9291012.html

你可能感兴趣的文章
108. Convert Sorted Array to Binary Search Tree
查看>>
数据结构与算法
查看>>
红黑树
查看>>
DIV滚动条
查看>>
YOLOV3 训练WIDER_FACE
查看>>
GIS ftp
查看>>
精品课程-工程测量-第一章-绪论
查看>>
好久没写代码,今天刚刚给客户写了点
查看>>
C++之 类型定义语句--typedef
查看>>
编译器原理(一):类成员函数
查看>>
spring boot 加载配置 文件
查看>>
dll和so文件区别与构成
查看>>
类型转换的3中方法
查看>>
移动硬盘分区变为RAW,chkdsk提示“因另一个程序正在使用这个卷,无法运行CHKDSK“ 的解决办法 ....
查看>>
Android实例-手机安全卫士(四十四)-双击自定义Toast窗口居中显示
查看>>
集成乐视点播功能的注意事项
查看>>
Python 冒泡排序
查看>>
SpringBoot开发案例之整合Dubbo分布式服务
查看>>
TCP协议三次握手
查看>>
Android版-支付宝APP支付
查看>>