jvm

作者: lucode | 来源:发表于2018-02-13 02:26 被阅读5次

    初始和最大堆内存大小

    -Xms and -Xmx (or: -XX:InitialHeapSize and -XX:MaxHeapSize)
    

    -Xms和-Xmx可以说是最流行的JVM参数,它们可以允许我们指定JVM的初始和最大堆内存大小。一般来说,这两个参数的数值单位是Byte,但同时它们也支持使用速记符号,比如“k”或者“K”代表“kilo”,“m”或者“M”代表“mega”,“g”或者“G”代表“giga”。举个例子,下面的命令启动了一个初始化堆内存为128M,最大堆内存为2G,名叫“MyApp”的Java应用程序。

    java -Xms128m -Xmx2g MyApp
    

    垃圾收集器

    默认HotSpot JVM使用的是并行收集器。
    激活 CMS 收集器-XX:+UseConcMarkSweepGC
    简单介绍一下几种垃圾收集器的原理

    串行收集器(Serial收集器)

    单线程去清理垃圾,停顿时间比较长
    新生代复制算法、老年代标记-压缩
    stop the world
    参数控制:-XX:+UseSerialGC 串行收集器

    ParNew收集器

    并行收集器,是串行收集器的多线程版本

    CMS收集器

    CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。互联网站或B/S系统的服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。
    关键在他的并发上面
    基于“标记-清除”算法实现的,它的运作过程相对于前面几种收集器来说要更复杂一些,整个过程分为4个步骤,包括:

    • 初始标记(CMS initial mark)
    • 并发标记(CMS concurrent mark)
    • 重新标记(CMS remark)
    • 并发清除(CMS concurrent sweep)
      其中初始标记、重新标记这两个步骤仍然需要“Stop The World”。

    优点: 并发收集、低停顿
    缺点: 产生大量空间碎片、并发阶段会降低吞吐量

    -XX:+UseConcMarkSweepGC
    该标志首先是激活CMS收集器。默认HotSpot JVM使用的是并行收集器。
    
    
    -Xms=1024m 
    -Xmx=1024m 
    -XX:MaxPermSize=128m 
    -Dspring.profiles.active=dev 
    -XX:+UseConcMarkSweepGC  使用 CMS 垃圾收集器
    -XX:CMSFullGCsBeforeCompaction=10 在 FullGC 十次后内存整理
    -XX:CMSInitiatingOccupancyFraction=70 
    -XX:-UseGCOverheadLimit 
    -XX:+PrintGC 
    -XX:+PrintGCDetails
     -Xloggc:/home/admin/logs/app_gc.log 
    -Dcom.sun.management.jmxremote.port=8999
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Dmetro-system
    

    相关文章

      网友评论

          本文标题:jvm

          本文链接:https://www.haomeiwen.com/subject/utzcnxtx.html