深入探究jvm之GC的参数调优】的更多相关文章

在上一篇博客记录了GC的算法及种类,这篇博客主要记录一下GC的参数如何调整以提高jvm的性能. 一.堆的回顾: 堆的内存空间总体分为新生代和老年代,老年代存放的老年对象,新构造的对象分配在eden区中(栈上分配及新生代内存不足的情况除外).在经过GC之后,幸存下来的对象会被分配到幸存代中,s0与s1是两块完全相同的内存区域,采用复制算法,在迭代后交换内存空间.经过若干次GC后,仍然未被回收的对象会被分配到老年代中. 二.GC参数--串行收集器(Serial) 串行收集器有以下几个特点: 1)最古…
1. JVM内存区域和参数配置 1.1 JVM内存结构 Java堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存. 方法区(Method Area) 方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据 程序计数器(Program Counter Register) 由于Java虚拟机的多线程是…
堆.栈.方法区概念区别 1.堆 堆内存用于存放由new创建的对象和数组.在堆中分配的内存,由java虚拟机自动垃圾回收器来管理.根据垃圾回收机制的不同, Java堆有可能拥有不同的结构,最为常见的就是将整个Java堆分为新生代和老年代.其中新声带存放新生的对象或者年龄不大的 对象,老年代则存放老年对象.新生代分为edn区.s0区.s1区,s0和s1也被称为from和to区域,他们是两块大小相等并且可以 互相角色的空间.绝大多数情况下,对象首先分配在eden区,在新生代回收后,如果对象还存活,则进…
原文来自:http://bbs.csdn.net/topics/310110257 本文只做整理记录,供个人学习. 1 JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了.这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题就暴露出来了. 要想配置好JVM参数,需要对年轻代.年老代.救助空间和永久代有一定了解,还要了解jvm内存管理逻辑,最终还要根据自己的应用来做调…
本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题.我个人特别喜欢这种实战类的内容,经原作者的授权同意,将文章分享于此.原文链接:Java服务GC参数调优案例,下面为转载此文的内容,备注部分为本人添加,主要起到说明的作用. 背景以及遇到的问题 我们的Java HTTP服务属于OLTP类型,对成功率和响应时间的要求比较高,在生产环境中出现偶现的成功率突…
JVM参数调优 JVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器. 一:串行垃圾回收,也就是默认配置,完成10万request用时153秒,JVM参数配置如下$JAVA_ARGS .= " -Dresin.home=$SERVER_ROOT -server -Xms2048M -Xmx2048M -Xmn512M -XXermSize=256…
这里和大家分享一下JVM参数调优的八条经验,JVM参数调优,这是很头痛的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达10秒以上,相信通过本文的学习你对JVM参数调优有新的认识. 实例讲解JVM参数调优的八条经验 本文将介绍JVM参数调优,这是很头痛的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种 情况如果没隔几分钟就来一次,自己都受不了.这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题…
堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space 永久代溢出 如果发生,则是在初始化的时候,空间太小,解决办法,扩大空间类的一些信息,如类名.访问修饰符.字段描述.方法描述等,所占空间大于永久代最大值,就会出现OutOfMemoryError:PermGen space 内存溢出的检测方法:pid=1730 Jdk/bin目录下…
堆参数调优 1.堆的结构 JAVA7 堆逻辑上分为:新生区.养老区.永久区:实际上堆只有新生区.养老区: Minor GC:轻量的垃圾回收:   Major GC(Full GC):重量级垃圾回收. Java8 没有永久区了,被元空间取代: 2.堆内存调优 -Xms:设置初始分配大小,默认为物理内存的 “ 1 / 64”: -Xmx:最大分配内存,默认为物理内存的 “1 / 4”: -XX:+PrintGCDetails:输出详细的GC处理日志: (1)使用代码输出实际默认的内存,代码如下: p…
本文主要参考自<深入理解 Java 虚拟机>.这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过程,包括了 JVM(Java Virtual Machine)的架构,垃圾收集的介绍等.这里摘录出关于配置 JVM 基本参数来调优 Eclipse 启动的过程,比较初级,供初学者参考. 基础知识 针对 JVM 的参数调优主要集中在数据区大小的控制和垃圾回收策略的选择.关于 JVM 运行机制等更多内容可参考其他博文 JVM 的运行时数据区…