JVM试用G1的垃圾收集器
因为以前用默认的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的垃圾收集器的更多相关文章
- JVM的7种垃圾收集器:主要特点 应用场景 设置参数 基本运行原理
原文地址:https://blog.csdn.net/tjiyu/article/details/53983650 下面先来了解HotSpot虚拟机中的7种垃圾收集器:Serial.ParNew.Pa ...
- JVM之几种垃圾收集器简单介绍
本文中的垃圾收集器研究背景为:HotSpot+JDK1.7 一.垃圾收集器概述 如上图所示,垃圾回收算法一共有7个,3个属于年轻代.三个属于年老代,G1属于横跨年轻代和年老代的算法. JVM会从年轻代 ...
- JVM系列2:垃圾收集器与内存分配策略
垃圾收集是一个很大话题,本文也只是看了深入理解Java虚拟机总结了下垃圾收集的知识. 首先按照惯例,先上思维导图: 垃圾收集简而言之就是JVM帮我们清理掉内存区域不需要的数据.它主要负责清理堆中实例对 ...
- JVM中常见的垃圾收集器
垃圾收集机制是 Java 的招牌能力,极大地提高了开发效率.如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展, Java 的垃圾收集机制仍然在不断的演进中,不同大小的设备.不同特征的应用 ...
- JVM系列三(垃圾收集器).
一.概述 1. 哪些内存需要回收 上篇文章 我们介绍了 Java 内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈三个区域随线程而生,随线程而灭,在这几个区域内就不需要过多考虑回收的问题 ...
- 深入理解JVM,7种垃圾收集器
本人免费整理了Java高级资料,一共30G,需要自己领取.传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 如果说收集算法是内存回收的方法论, ...
- JVM 第二篇:垃圾收集器以及算法
本文内容过于硬核,建议有 Java 相关经验人士阅读. 0. 引言 一说到 JVM ,大多数人第一个想到的可能就是 GC ,今天我们就来聊一聊和 GC 关系最大的垃圾收集器以及垃圾收集算法,希望能通过 ...
- JVM学习笔记——GC垃圾收集器
GC 垃圾收集器 Java 堆内存采用分代回收算法,因此 JVM 针对新生代和老年代提供了多种垃圾收集器. 1. Serial 收集器 Serial 收集器是单线程收集器,采用复制算法. 是最基本的垃 ...
- 【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 ...
随机推荐
- El表达式和fn函数一起使用
如下: ${a%1>0?a:(fn:substringBefore(a, "."))}
- STL_set&multiset
1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样.所有的操作的都是严格在logn时间之内完成,效率非常高. set和multiset的 ...
- USACO6.4-Wisconsin Squares:搜索
Wisconsin Squares It's spring in Wisconsin and time to move the yearling calves to the yearling past ...
- zoj3422Go Deeper(2-sat + 二分)
题目请戳这里 题目大意: go(int dep, int n, int m) begin output the value of dep. if dep < m and x[a[dep]] + ...
- 黑马程序员_<<IO流基本操作(Writer,Reader)>>
--------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.概述 硬盘之间的文件的传输,硬盘中文件的 ...
- activity theme parent 属性浅析
在AndroidManifest.xml文件中,可以对每一个Activity设置android:themetheme的设置 可以设置为系统自带的格式,也可以自定义格式. A: 系统自带格式 1.and ...
- iOS--创建uiscrollview
//创建uiscrollview self.PageHeight = self.view.bounds.size.height; self.PageWidth = self.view.bounds.s ...
- Codeforces 220B - Little Elephant and Array 离线树状数组
This problem can be solve in simpler O(NsqrtN) solution, but I will describe O(NlogN) one. We will s ...
- angularjs之双向绑定
今天所学习的东西虽然不是很多 但是对我来说受益匪浅, 就比如说在table中要选中一行的话我们可以这样写: 模板中: <table ng-controller="tableContro ...
- GitHub 小试
GitHub是什么? 它是用来进行版本控制的,就是用来保存项目的地方. 但是项目要是运行,还是需要你本地的环境,它只不过是用来保存代码罢了. GitHub如何操作? 可以通过客户端进行代码提交,更新. ...