JVM常用参数

JVM常用参数

调试跟踪参数配置

  • -XX:+PrintGC打印GC日志
  • -XX:+PrintGCDetailsGC时的详细堆信息
  • -XX:+PrintHeapAtGC打印GC前后的堆信息
  • -XX:+PrintGCTimeStamps输出GC发生时间,输出的时间为虚拟机启动的偏移量
  • -XX:+PrintGCApplicationConcurrentTime输出应用程序执行时间
  • -XX:+PrintGCApplicationStoppedTime输出应用程序由于GC产生停顿的时间
  • -XX:+PrintRefrenceGC 输出软引用、弱引用、虚引用和Finalize队列
  • -XX:+HeapDumpOnOutOfMemoryError产生OOM时可以在内存溢出时导出整个堆信息
  • -XX:HeapDumpPath导出堆文件存放路径
  • -XX:+TraceClassLoading跟踪类加载信息
  • -XX:+TraceClassUnloading跟踪类卸载信息
  • -XX:PrintClassHitogram查看系统中的类的分布情况(占用空间最多、实例数量空间大小)
  • -XX:+PrintVMOptions打印虚拟机接收到的命令行显示参数
  • -XX:+PrintCommandLineFlags打印虚拟机的显式和隐式参数
  • -XX:+PrintFlagsFinal打印虚拟机的所有系统参数

堆内存参数配置

  • -Xms10g -Xmx20G 可用内存
  • -Xmn3g新生代大小,一般设置为堆空间的1/3 1/4左右,新生代大则老年代小
  • -XX:SurvivorRatio设置新生代eden空间和from/to空间的比例关系,关系(eden/from=eden/to)
  • -XX:NewRatio设置新生代和老年代的比例老年代/新生代

非堆内存参数配置

  • -XX:PermSize 永久区大小,jdk8中移除
  • -XX:MaxMetaspaceSize永久区最大可用值,jdk8中可用,如果不设置则使用系统内存
  • -Xss 栈配置
  • -XX:MaxDirectMemorySize,最大直接内存,跳过Java堆,如不设置默认值为最大堆空间
  • JVM运行模式 -server启动慢,启动之后速度快,适用于长期运行的程序; -client适用于运行时间不常的程序,如GUI

GC参数配置

与串行收集器相关的参数
  • -XX:+UseSerialGC 新生代、老年代使用串行收集器
  • -XX:SurvivorRatio 设置eden区和survivor区大小的比例
  • -XX:PretenureSizeThreshold,当对象大小超过此值时,直接分配到老年代
  • -XX:MaxTenuringThreshold 设置对象进入老年代的最大年龄
与并行相关的参数
  • -XX:+UseParNewGC 新生代使用并行收集器
  • -XX:+UseParallelOldGC 老年代使用并行回收收集器
  • -XX:+ParallelGCThreads设置垃圾回收线程数,一般最好与CPU数量相当,默认情况下,当CPU数量小于8个时,ParallelGCThreads的值相当于CPU数量,当CPU数量大于8个时,ParallelGCThreads的值等于3+((5*CPU_COUNT)/8
  • -XX:MaxGCPauseMillis设置最大垃圾收集停顿时间
  • -XX:GCTimeRatio 设置吞吐量大小,它的值是一个0~100之间的整数,假设值为n,那么系统将花费不超过1/(1+n)的时间用于垃圾收集
  • -XX:+UseAdaptiveSizePolicy打开自适应GC策略,JVM对新生代的大小、eden和survivior的比例、晋升老年代对象年龄等参数自动调整
与CMS回收器相关的参数
  • -XX:+UseConcMarkSweepGC 启用CMS
  • -XX:ParallelCMSThreads设置CMS线程数量
  • -XX:CMSInitiatingOccupancyFraction默认68当老年代的空间超过68%时会执行一次CMS回收
  • -XX:UseCMSCompactAtFullCollection设置CMS结束后是否需要进行一次内存空间整理
  • -XX:CMSFullGCsBeforeCompaction进行多少次CMS后进行内存空间压缩
  • -XX:+CMSClassUnloadingEnabled 允许对类元数据区进行回收
  • -XX:CMSInitiatingPermOccupancyFraction当永久区占用率达到此值时进行CMS回收(须激活CMSClassUnloadingEnabled)
  • -XX:UseCMSInitiatingOccupancyOnly只要达到阈值时进行CMS回收
与G1回收器相关的参数
  • -XX:+UseG1GC 使用G1
  • -XX:MaxGCPauseMillis最大垃圾收集停顿时间
  • -XX:GCPauseIntervalMillis最大停顿间隔时间
TLAB相关
  • -XX:UseTLAB开启TLAB分配
  • -XX:+PrintTLAB 打印TLAB相关分配信息
  • -XX:TLABSize设置TLAB的大小
  • -XX:+ResizeTLAB自动调整TLAB的大小
其他相关
  • -XX:+DisableExplicitGC禁用显示GCSystem.gc()
  • -XX:+ExplicitGCInvokesCOncurrent使用并发方式处理GC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值