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, "."))}
- DLL模块:extern "C"的简单解析
1.揭密extern "C" extern "C"包含双重含义,从字面上即可得到:首先,被它修饰的目标是 "extern”的:其次,被它修饰的目标是 ...
- 最牛逼的的shell命令
参考 远程diff [root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/iperf] #ssh ahao.mah@dnstest02.tbc c ...
- 翻译brent ozar的sqlserver dba训练课程——第一章:建立数据库服务器清单
在公司里,走进销售副总裁的办公室,询问他手下有多少销售人员.不,我的意思是你并不要那么做,他们会问你销售工具为什么那么慢. 其实我的意思是,如果你能走进他的办公室问他这个问题.我敢打赌,他会马上回答 ...
- 数据库和linq中的 join(连接)操作
sql中的连接 sql中的表连接有inner join,left join(left outer join),right join(right outer join),full join(full o ...
- UVALive 6525 Attacking rooks 二分匹配 经典题
题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=4536">点击打开链接 题意: ...
- Excel02-快速无误输入多个零
第一步:设置单元格格式-->小数位数为0,货币符号为¥ 第二步:在单元格输入数据:1**5回车即显示为¥100,000 **N 表示后面有N个零,会自动加入我们设置的货币符号¥ 这对我们在输入巨 ...
- Ajax&XMLHttpRequest
XMLHttpRequest 简单省力的方法 将文件编码成base64通过Ajax上传 HTML5学习之FileReader接口 HTML5学习之FileReader接口 通过Ajax方式上传文件,使 ...
- Node.js开发环境介绍-调试工具
1)WebStorm 断点调试,单步执行 2)nodemon 监听文件变更,自动重启 3)node-inspector 基于浏览器调试nodejs 4)Chrome Developer Tools 基 ...
- 服务 进程间通讯 IPC AIDL Parcelable 简介
1.IBinder和Binder是什么鬼? 我们来看看官方文档怎么说: 中文翻译: IBinder是远程对象的基本接口,是为了高性能而设计的轻量级远程调用机制的核心部分. 但他不仅用于远程调用,也用 ...