JVM调优——之CMS 常见参数解析】的更多相关文章

最近在学习使用CMS这个GC,这里记录下常用的参数. 1. UseCMSCompactAtFullCollection 与 CMSFullGCsBeforeCompaction 有一点需要注意的是:CMS并发GC不是“full GC”.HotSpot VM里对concurrent collection和full collection有明确的区分.所有带有“FullCollection”字样的VM参数都是跟真正的full GC相关,而跟CMS并发GC无关的. CMSFullGCsBeforeCom…
在jvm调优之前,我们必须先了解jvm的内存模型与GC回收机制,这些在我前面的文章里面有介绍!接下来我们通过一个案例来调整jvm性能. 一测试案例: 1.1 编写demo import java.text.DecimalFormat; /** -XX:+PrintGC 打印GC日志 -XX:+PrintGCDetails 打印详细的GC日志 file.encoding 文件编码 -XX:MaxTenuringThreshold 对象年龄,默认15次之后较大几率放进入老年代,为0则不进入s0 s1…
JVM的参数类型 标准参数 -help -server -client -version -showversion -cp -classpath X参数 -Xint: 解释执行 -Xcomp:第一次使用就编译成本地代码 -Xmixed:混合模式,JVM自己来决定是否编译成本地代码 XX参数 特点 非标准化参数 相对不稳定 主要用于JVM调优和Debug 分类 Boolean类型 格式:-XX:[+-]<name>表示启用或禁用name属性 比如: -XX:+UseConcMarkSweepGC…
最近在学习JVM和GC调优,今天总结下CMS的一些特点和要点,让我们先简单的看下整个堆年轻代和年老代的垃圾收集器组合(以下配合java8完美支持,其他版本可能稍有不同),其中标红线的则是我们今天要着重讲的内容: 垃圾回收器的可用组合: ParNew and CMS "Concurrent Mark and Sweep" 是CMS的全称,官方给予的名称是:“Mostly Concurrent Mark and Sweep Garbage Collector”; 年轻代:采用 stop-t…
开发项目中会遇到Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的问题,通过查找资料找到是通过设置Tomcat 启动堆空间大小.年轻代大小.每个线程大小参数进行调优的,具体如下: 一.在Tomcat 启动脚本(catalina.sh/catalina.bat)首行添加如下配置即可解决此问题 JAVA_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -Xss1024K -XX:PermSize=128m -XX:Ma…
本文部分内容出自https://blog.csdn.net/yang_net/article/details/5830820 调优步骤: 衡量系统现状. 设定调优目标. 寻找性能瓶颈. 性能调优. 衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈). 性能调优结束. JVM调优(最关键参数为:-Xms -Xmx -Xmn -XX:SurvivorRatio   -XX:MaxTenuringThreshold 代大小调优 避免新生代大小设置过小             避免新生代大小设置过大…
调优设置具体解析 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制. 在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m. 典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k  -Xms3550m:设置JVM最大可用堆内存为355…
本文主要是工作过程中总结的一些jvm调优的参数和注意的地方,作为一个备忘录,先占个坑,有时间在来细化具体的实例. gc日志是覆盖的方式如果文件名字固定会导致上一次被覆盖可以采用这个-Xloggc:backv2_gc_%t.log jinfo可以动态修改java -XX:+PrintFlagsFinal -version|grep manageable这些参数 打印java可配置的非稳定参数:java -XX:+PrintFlagsFinal ,输出的信息中 ":=" 表明了参数被用户或…
GC有两种类型:Scavenge GC 和Full GC 1.Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor的两个区中. 2.Full GC 对整个堆进行整理,包括Young.Tenured和Perm.Full GC 比Scavenge GC要慢,因此应该尽可能减少Full GC,有如下原因可能导致Full GC a.Tenured被写满: b.P…
JVM基础:生产环境参数实例及分析 原始配置: -Xms128m -Xmx128m -XX:NewSize=64m -XX:PermSize=64m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=78 -XX:ThreadStackSize=128k-Xloggc:logs/gc.log -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.rmi.dgc.client.gcInterv…
2019独角兽企业重金招聘Python工程师标准>>> JVM调优:GC 参数 博客分类: java jvm 参考: <Memory Management in the Java HotSpot™ Virtual Machine > <Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning > <Garbage Collector Ergonomics > 一.    理论基础 参…
https://juejin.im/post/5b091ee35188253892389683 大型跨境电商JVM调优经历 前提:某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的运行情况,特别是jvm内存的情况,一直没有一个统一的标准来给到各个应用服务的owner.经过618大促之后,和运维的同学讨论了下,希望将线上服务器的jvm参数标准化,可以以一个统一的方式给到各个应用,提升线上服务器的稳定性,同时减少大家都去调整jvm参数的时间.参考了之前在淘宝天猫工作的公司的经历:…
这种文章挺难写的,一是JVM参数巨多,二是内容枯燥乏味,但是想理解JVM调优又是没法避开的环节,本文主要用来总结梳理便于以后翻阅,主要围绕四个大的方面展开,分别是JVM调优参数.JVM调优方法(流程).JVM调优工具.JVM调优案例,调优案例目前正在分析,会在将来补上. 垃圾回收有关参数 参数部分,这儿只是做一个总结,更详细更新的内容请参考Oracle官网:JVM的命令行参数参考 处理器组合参数 关于JVM垃圾处理器区别,参考:JVM调优之垃圾定位.垃圾回收算法.垃圾处理器对比 -XX:+Use…
(1)参数 -Xms:初始堆大小 -Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存 -Xmn :年轻代大小 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8. -XX:NewSize:设置年轻代大小 -XX:MaxNewSize:年轻代最大值 -XX:NewRatio 年老代与年轻代的比值 -XX:SurvivorRat…
GC和GC Tuning GC的基础知识 1.什么是垃圾 C语言申请内存:malloc free C++: new delete c/C++ 手动回收内存 Java: new ? 自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题: 忘记回收 多次回收 没有任何引用指向的一个对象或者多个对象(循环引用) 2.如何定位垃圾 引用计数(ReferenceCount) 根可达算法(RootSearching) 3.常见的垃圾回收算法 标记清除(mark sweep) - 位置…
面试官:今天要不来聊聊JVM调优相关的吧? 面试官:你曾经在生产环境下有过调优JVM的经历吗? 候选者:没有 面试官:... 候选者:嗯...是这样的,我们一般优化系统的思路是这样的 候选者:1. 一般来说关系型数据库是先到瓶颈,首先排查是否为数据库的问题 候选者:(这个过程中就需要评估自己建的索引是否合理.是否需要引入分布式缓存.是否需要分库分表等等) 候选者:2. 然后,我们会考虑是否需要扩容(横向和纵向都会考虑) 候选者:(这个过程中我们会怀疑是系统的压力过大或者是系统的硬件能力不足导致系…
1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte.short.int.long.char.float.double.boolean.returnAddress?? 引用类型包括:类类型.接口类型和数组 byte 1B(8位) -128 ~ 127 0 short 2B(16位…
[转] JVM调优总结 + jstat 分析 JVM调优总结 + jstat 分析 jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果   S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   LGCC                 GCC                     87.71   0.00  9…
  JVM调优实战 文档修订记录 版本 日期 撰写人 审核人 批准人 变更摘要 & 修订位置                                                                                                                                                                                     目录 1    理论篇    1 1.1   …
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 JProfiler:商业软件,需要付费.功能强大.详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似.推荐. 如何调优 观察内存释放情况.集合类检查.对象树 上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能 堆信息查看…
jvm调优 jvm调优主要是内存管理方面的调优,包括各个代的大小,GC策略等. 代大小调优 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m. 关键参数 -Xms  JVM初始内存 -Xmx  JVM最大内存 -Xmn  年轻代大…
1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte.short.int.long.char.float.double.boolean.returnAddress 引用类型包括:类类型.接口类型和数组 2.堆与栈 堆和栈是程序运行的关键,很有必要它他们的关系说清楚. 栈是运行时的…
JVM调优浅谈 https://www.cnblogs.com/andy-zhou/p/5327288.html   1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值. “引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte.short.int.long.char.float.double.boolean 引用类型包括:类类型.…
JVM调优的本质: 并不是显著的提高系统性能,不是说你调了,性能就能提升几倍或者上十倍,JVM调优,主要调的是稳定.如果你的系统出现了频繁的垃圾回收,这个时候系统是不稳定的,所以需要我们来进行JVM调优,调整垃圾回收的频次. GC调优原则 调优的原则 1. 大多数的java应用不需要GC调优 2. 大部分需要GC调优的的,不是参数问题,是代码问题 3. 在实际使用中,分析GC情况优化代码比优化GC参数要多得多: 4. GC调优是最后的手段 目的 GC的时间够小 GC的次数够少 发生Full GC…
一.背景 2021年2月,收到反馈,视频APP某核心接口高峰期响应慢,影响用户体验. 通过监控发现,接口响应慢主要是P99耗时高引起的,怀疑与该服务的GC有关,该服务典型的一个实例GC表现如下图: 可以看出,在观察周期里: 平均每10分钟Young GC次数66次,峰值为470次: 平均每10分钟Full GC次数0.25次,峰值5次: 可见Full GC非常频繁,Young GC在特定的时段也比较频繁,存在较大的优化空间.由于对GC停顿的优化是降低接口的P99时延一个有效的手段,所以决定对该核…
JVM调优总结:一些概念 原文出处: pengjiaheng 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置. 基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress 引用类型包括:类类型,接口类型和数组. 堆与栈 堆和栈是程…
JVM参数调优是一个很头痛的问题,可能和应用有关系,别人说可以的对自己不一定管用.下面是本人一些JVM调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器.        JVM调优        一:JVM调优之串行垃圾回收        也就是默认配置,完成10万request用时153秒.JVM参数配置如下:        $JAVA_ARGS.=“-Dresin.home=$SERVER_ROOT-se…
老李分享:JVM调优   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200.poptest 不断优化课堂的案例,培养学员实际解决问题的能力. 当Java程序申请内存,超出VM可分配内纯的时候,VM首先可能会GC,如果GC完还是不够,或者申请的直接超够VM可能有的,就会抛出内 存溢出异常.从VM规范中我们可以得到,一下几种异常. java.la…
原文:https://blog.csdn.net/wd2014610/article/details/82182617 项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行. 在这边有一篇比较好的文章,推荐给大家! SpringBoot项目配置Tomcat和JVM参数 一.修改配置文件关于修改配置文件application.properties. SpringBoot项目详细的配置文件修改文档 其中比较重要…
目录 1.Java虚拟机内存模型 1.1 程序计数器 1.2 Java虚拟机栈 局部变量 1.3 本地方法栈 1.4 Java堆 1.5 方法区(永久区.元空间) 附图 2.JVM内存分配参数 2.1 设置最大堆内存 2.2 设置最小堆内存 2.3 设置新生代 2.4 设置持久代 2.5 设置线程栈 2.6 堆的内存分配 2.7 堆分配参数总结 3.垃圾收集基础 3.1 垃圾收集的作用 3.2 垃圾回收算法与思想 3.2.1 引用计数法(Reference Counting) 3.2.2 标记-…