zoukankan      html  css  js  c++  java
  • jdk1.8的jvm参数的查看以及GC日志的分析

    JVM 默认参数查看
    1、安装完Java环境后,我们可以通过下面这个命令查看系统默认的jvm参数
    运行cmd
    命令:java -XX:+PrintFlagsFinal
    我们可以看到默认jvm的主要参数如下:

    从上面的信息,我们可以找到我们经常设置的信息(本机物理内存是8G):

    -Xmx:最大堆内存(默认为物理内存的1/4),图上对应可以看出 MaxHeapSize=2109734912(约2G,即为物理内存的1/4)

    -XX: MaxMetaspaceSize:   这个是jdk1.8新的参数,用来代替以前的MaxPermSize(持久代大小),

    -XX: MaxNewSize: 最大新生带大小 ,图上可以看出最大的 MaxNewSize=703070208(约700M)

    -XX: NewSize: 初始的年轻代大小,图上可以看出最大的 NewSize=44040192(约40M)

    -XX: NewRation: 表示年轻代与年老代所占比值为,图上可以看出2,即就是年轻代与年老代为1/2,也就是年轻代为堆内存的1/3,用最大内存2g来看,最大年轻代为700M,和上面的信息也是对应一致的

    -XX: SurvivorRatio:标识Eden区与Survivor区的大小比值,默认值8,由于Survivor是由两个大小相同的区域组成,那么即就是两个Survivor与Eden的比值为2:8,也就是一个Survivor区占整个年轻代的1/10,Eden区占整个新生代的8/10

    对于一般的生产环境而言,默认的JVM参数基本就可以了,如果需要调整可以根据自身的环境进行调整,比如我自己的本地环境的jvm参数:

    -Xms2G -Xmx2G -Xmn256m -Xss256k

    因为我是java web项目,且请求次数多,但是请求体不大,因此考虑将新生代的内存设置的小一点,保证请求能够在结束后,如果需要GC,最好直接在年轻代GC,不要过渡到老年代,从而引发FullGC(但是参数一定要自己试一试,不要频发的引发yong gc)




    GC日志查看分析

    由于gc收集器的不一样,因此打印出来的日志也不一样,下面我以自己本地默认的收集器为例,看一看一个FullGC的日志信息

    查看本地默认的收集器:

    使用cmd 输入:java -XX:+PrintCommandLineFlags -version

     可以看出我的收集器默认为:-XX:+UseParallelGC:即为并行收集器

    [Full GC (Ergonomics) [PSYoungGen: 14841K->13410K(227840K)] [ParOldGen: 20967K->21980K(38400K)] 35809K->35390K(266240K), [Metaspace: 5155K->5155K(1056768K)], 0.0281768 secs] [Times: user=0.19 sys=0.02, real=0.03 secs]

    其中 PSYoungGen  表示发生GC时,yong的内存由占用14841K回收到占用13410K  括号后的227840K 表示总的年轻代内存大小

    ParOldGen 表示发生GC的时候老年代内存的释放情况

    35809K->35390K(266240K),  这个数值表示的发生GC的时候,整个堆内存的变换情况

    而最主要的是Ergonomics这个GC的情况,具体原因可以参考https://blog.csdn.net/weixin_43194122/article/details/91526740

    很多人可能发现了我的PSYoungGen和ParOldGen的内存,差别比较大,主要原因是本次调试过程中我没有设置-Xms参数,而是由系统自动分配的,这样也会导致每次GC后,内存的重新分配,因此建议在生产环境中设置-Xms和-Xmx为相同的值。

    好了,本次简单的了解就到这里,如果你有什么好的意见或建议,欢迎交流学习!



  • 相关阅读:
    json的序列化 与 反序列化
    苹果审核被拒 2.3.10
    iOS基础问答面试
    论坛类应用双Tableview翻页效果实现
    iOS性能调优之Analyze静态分析
    win10 U盘安装ubuntu16.04双系统
    spring boot实战读书笔记1
    使用springBoot搭建REATFul风格的web demo
    es6编写generator报错
    vue开发环境搭建win10
  • 原文地址:https://www.cnblogs.com/ljy-20180122/p/12368790.html
Copyright © 2011-2022 走看看