因为以前用默认的GC,,老年代经常在占比超过99%才发生一个GC行为,感觉不爽。。。尽管每次FULL GC只要0.5S。

结合上次听中华构架师大会,一哥们分享的G1 GC。。。试试。。

就在TOMCAT的catania.sh里JAVA的启动参数加一段吧。。

JAVA_OPTS=' -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC '

JMAP输出如下啦:

jmap -heap xxxx
Attaching to process ID xxx, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.0-b56

using thread-local object allocation.
Garbage-First (G1) GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 1073741824 (1024.0MB)
   NewSize          = 1363144 (1.2999954223632812MB)
   MaxNewSize       = 268435456 (256.0MB)
   OldSize          = 5452592 (5.1999969482421875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 268435456 (256.0MB)
   MaxPermSize      = 268435456 (256.0MB)
   G1HeapRegionSize = 1048576 (1.0MB)

Heap Usage:
G1 Heap:
   regions  = 1024
   capacity = 1073741824 (1024.0MB)
   used     = 525790240 (501.4326477050781MB)
   free     = 547951584 (522.5673522949219MB)
   48.968032002449036% used
G1 Young Generation:
Eden Space:
   regions  = 108
   capacity = 275775488 (263.0MB)
   used     = 113246208 (108.0MB)
   free     = 162529280 (155.0MB)
   41.06463878326996% used
Survivor Space:
   regions  = 6
   capacity = 6291456 (6.0MB)
   used     = 6291456 (6.0MB)
   free     = 0 (0.0MB)
   100.0% used
G1 Old Generation:
   regions  = 415
   capacity = 791674880 (755.0MB)
   used     = 406252576 (387.4326477050781MB)
   free     = 385422304 (367.5673522949219MB)
   51.31558247749379% used
Perm Generation:
   capacity = 268435456 (256.0MB)
   used     = 65695576 (62.652183532714844MB)
   free     = 202739880 (193.34781646728516MB)
   24.473509192466736% used

35236 interned Strings occupying 3876240 bytes.

JMAP相关GC输出如下:

jstat -gc xxxx 1000 10
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
 0.0   6144.0  0.0   6144.0 269312.0 81920.0   773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 100352.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 120832.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 139264.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 176128.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 193536.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 211968.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 229376.0  773120.0   396840.2  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   6144.0  0.0   6144.0 269312.0 243712.0  773120.0   400994.0  262144.0 64155.8   3579   84.690   0      0.000   84.690
 0.0   8192.0  0.0   8192.0 267264.0 44032.0   773120.0   402843.3  262144.0 64155.8   3580   84.719   0      0.000   84.719

ZABBIX的输出图马上由大宝剑变成了蜿行蛇啦。。。

JVM试用G1的垃圾收集器的更多相关文章

  1. JVM的7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理

    原文地址:https://blog.csdn.net/tjiyu/article/details/53983650 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial.ParNew.Pa ...

  2. JVM之几种垃圾收集器简单介绍

    本文中的垃圾收集器研究背景为:HotSpot+JDK1.7 一.垃圾收集器概述 如上图所示,垃圾回收算法一共有7个,3个属于年轻代.三个属于年老代,G1属于横跨年轻代和年老代的算法. JVM会从年轻代 ...

  3. JVM系列2:垃圾收集器与内存分配策略

    垃圾收集是一个很大话题,本文也只是看了深入理解Java虚拟机总结了下垃圾收集的知识. 首先按照惯例,先上思维导图: 垃圾收集简而言之就是JVM帮我们清理掉内存区域不需要的数据.它主要负责清理堆中实例对 ...

  4. JVM中常见的垃圾收集器

    垃圾收集机制是 Java 的招牌能力,极大地提高了开发效率.如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展, Java 的垃圾收集机制仍然在不断的演进中,不同大小的设备.不同特征的应用 ...

  5. JVM系列三(垃圾收集器).

    一.概述 1. 哪些内存需要回收 上篇文章 我们介绍了 Java 内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈三个区域随线程而生,随线程而灭,在这几个区域内就不需要过多考虑回收的问题 ...

  6. 深入理解JVM,7种垃圾收集器

    本人免费整理了Java高级资料,一共30G,需要自己领取.传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 如果说收集算法是内存回收的方法论, ...

  7. JVM 第二篇:垃圾收集器以及算法

    本文内容过于硬核,建议有 Java 相关经验人士阅读. 0. 引言 一说到 JVM ,大多数人第一个想到的可能就是 GC ,今天我们就来聊一聊和 GC 关系最大的垃圾收集器以及垃圾收集算法,希望能通过 ...

  8. JVM学习笔记——GC垃圾收集器

    GC 垃圾收集器 Java 堆内存采用分代回收算法,因此 JVM 针对新生代和老年代提供了多种垃圾收集器. 1. Serial 收集器 Serial 收集器是单线程收集器,采用复制算法. 是最基本的垃 ...

  9. 【JVM】-NO.110.JVM.1 -【GC垃圾收集器】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

随机推荐

  1. COJ WZJ的数据结构(负十八)splay_tree的天堂

    WZJ的数据结构(负十八) 难度级别:E: 运行时间限制:100000ms: 运行空间限制:700KB: 代码长度限制:2000000B 试题描述 对于前一段样例: 输入 输入文件的第1行包含两个数N ...

  2. 用DIV+Css+Jquery 实现的旧版微信飞机大战。

    用jquery 实现的旧版微信飞机大战. 以前一直都是做后台和业务逻辑,前端很少去做, 现在个小游戏. 方向键控制方向,Ctrl 键 放炸弹(当然你的有炸弹,哈哈)! 主要都是用div+Css实现的, ...

  3. layPage异步分页

    layPage分页,参照官网实例写了一份.如下: function InitDataByPage(curr) { ; $.getJSON("InitDataByPage", { & ...

  4. JS-事件处理

    1.一个简单的单击事件: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  5. s16_day01

    一.基础 1.编码 ascii-->GB2312-->GB18030-->GBK-->unicode-->UTF8可变长 2.数据类型 int,long,float,co ...

  6. css的小demo

    demo1 一个高度随宽度变化的正方形   (缩小屏幕试试) 原理:margin和padding如果是用百分比设置,则是以父元素的宽度的百分比设置的. .Square{ display: inline ...

  7. 屏幕分辨率(QQVGA、QVGA、VGA、XGA、WXGA、WUXGA和WSXGA+)

    TFT屏幕 TFT ( Thin Film Transistor 薄膜晶体管) ,是有源矩阵类型液晶显示器(AM-LCD)中的一种,TFT在液晶的背部设置特殊光管,能够“主动的”对屏幕上的各个独立的象 ...

  8. SQLite中不支持的sql语法

    今天很自然的在写Sql语句的时候用了Top,一开始没发现问题,因为我从数据库读出的值正好是0,而我习惯变量定义的时候也都赋值0,可是到我不要0的时候我就发现问题了.后来才知道,可爱的小sqlite竟然 ...

  9. saltstack对递归依赖条件(死循环依赖)的处理

    本文将对saltstack中状态文件中require条件产生死循环的情形进行简单的测试和分析 测试思路: 写一个包含递归依赖条件的状态文件,进行测试:      A依赖于B      B依赖于C    ...

  10. C#实现测量程序运行时间及cpu使用时间

    private void ShowRunTime() { TimeSpan ts1 = Process.GetCurrentProcess().TotalProcessorTime; Stopwatc ...