jvm 调优参数整理记录

https://www.fastthread.io/   分析堆栈

https://blog.gceasy.io/        分析内存 gc

虚拟机调试参数:

 1.设置堆的最大和最小值

 -Xmx  堆中可以申请的最大内存      -Xms  堆中可以申请的最小内存  将两个值调成一样可以避免堆自动扩展。

2.可以让虚拟机出现内存异常时Dump出当前内存堆转储快照以便进行分析。

 -XX:+HeapDumpOnOutOfMemoryError 

3.设置出现内存溢出时,内存快照的保存路径

-XX:HeapDumpPath=logs   -XX:ErrorFile=logs/hs_err_pid%p.log  Dump出当前内存堆转储快照的路径

4.减少栈内存的容量(设置栈的大小)

-Xss161k

5.设置年轻代的大小
-Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

6.设置元空间的最大值,默认是-1,即不限制,或者说是受限于本地内存的大小。

-XX:MaxMetaspaceSize:

 7. java vritual machines 是否需要使用 Thread local allocation buffer可以通过

    -XX: +/-UseTLAB参数来设定。

8.hotspot虚拟机日志打印

  hotspot所有的日志都归到 -Xlog 参数上

  jdk9以下 告诉虚拟机在发生垃圾回收时打印内存回收日志,并且在进程退出时打印当前各区的分配情况。

  -XX:+PrintGCDetails 

   输出gc日志指定到目录

   -Xloggc:logs/gc.log  (logs/gc.log  是指定的目录)

9.指定老年代使用CMS垃圾收集器命令(使用这个命令后,新生代默认使用的收集器是ParNew收集器)(jdk9过时了)

    -XX:+/-UseConcMarkSweepGC

    也可以强制指定使用或去掉ParNew收集器命令  -XX:+/- UseParNewGC(过时的参数,jdk9不使用)

   提高cms触发比例,降低内存回收的频率,获取更好的性能

   -XX:CMSInitiatingOccupancyFraction=75

 (在并发标记和清除阶段,用户线程还在执行任务,所以要预留出来一部分空间,留给正在执行的用户线程使用。如果老年区生成的数据不是很快,那么就调大一点这个值,减少清理的次数,提高性能。75是空间百分比

10.使用G1垃圾收集配置的参数

    1)给每个region分配空间(每个region就相当于把整个堆切分开了,其中有eden空间,Survivor空间,或者老年空间)

       -XX:G1HeapRegionSize32MB   这个取值范围是1MB~32MB 应为2的N次幂

    2)收集时的停顿时间

         -XX:MaxGCPauseMillis  默认是200毫秒

 

垃圾收集器参数总结

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值