因为以前用默认的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. Java---设计模块(装饰模式)

    ★ 场景和问题 在不对原有对象类进行修改的基础上,如何给一个或多个已有的类对象提供增强额外的功能? ★ 引例 写一个MyBufferedReader类,使它能够对字符流(如FileReader.Inp ...

  2. RenderBody, RenderPage and RenderSection methods in MVC 3

    原文地址:http://www.codeproject.com/Articles/383145/RenderBody-RenderPage-and-RenderSection-methods-in R ...

  3. Problem with generating association inside dbml file for LINQ to SQL

    Question: I have created a dbml file in my project, and then dragged two tables from a database into ...

  4. 你需要知道的九大排序算法【Python实现】之堆排序

    六.堆排序 ​堆排序是一种树形选择排序,是对直接选择排序的有效改进. ​堆的定义下:具有n个元素的序列 (h1,h2,...,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(h ...

  5. [React Testing] Reusing test boilerplate

    Setting up a shallow renderer for each test can be redundant, especially when trying to write simila ...

  6. CCArray(转)

    http://blog.csdn.net/passtome/article/details/7966451 CCArray也是cocos2d-x自己写的类.它相当于是objc的NSArray.在coc ...

  7. gcc总结【基本用法】【选项】【动静态库】(转)

    1.////////////////////////////////////////////////////////////////////////////////////////////////// ...

  8. Qt QString to char*

    QString转换成char * 的时候,一定要定义一个QBateArray的变量.不能连写 How can I convert a QString to char* and vice versa ? ...

  9. 浏览器格式化JSON输出,thinkphp

    1 //编写类方法用$this->ajaxReturn()返回数据 2 public function index(){ 3 $user = M('User'); 5 $data = $user ...

  10. Oracle之事务

    一,oracle的事务: 是指对数据操作的一系列动作的统称.即:事务的任务便是使数据库从一种状态变换成为另一种状态,这不同于文件系统,它是数据库所特用的. 事务有四大特性(ACID): 1,原子性(a ...