
jvm
lipc_
这个作者很懒,什么都没留下…
展开
-
JVM:垃圾回收机制和调优手段
JVM:垃圾回收机制和调优手段我们都知道JVM内存由几个部分组成:堆、方法区、栈、程序计数器、本地方法栈JVM垃圾回收仅仅针对公共内存区域即:堆和方法区进行。本文主要讨论两点,一是垃圾回收策略,二是调优的方法。一、垃圾回收机制1.1 分代管理将堆和方法区按照对象不同年龄进行分代:u 堆中会频繁创建对象,基转载 2016-07-25 18:27:11 · 327 阅读 · 0 评论 -
JVM调优:PermSpace溢出
引言: 在JVM中, PermSpace主要存放什么信息?如何去理解它的溢出呢?什么是PermSpace? PermSpace主要是存放静态的类信息和方法信息,静态的方法和变量,final标注的常量信息等。PermSpace溢出的Case 1: 这里的JDK版本1.6.0_45(jdk7/jdk8不存在类似问题) Opertion System: U转载 2017-07-11 15:31:26 · 602 阅读 · 0 评论 -
排查Java线上服务故障的方法和实例分析
前言 作为在线系统负责人或者是一个技术专家,你可能刚刚接手一个项目就需要处理紧急故障,或者被要求帮忙处理一些紧急的故障,这个时候的情景是: (1)你可能对这个业务仅仅是听说过,而不怎么真正了解; (2)你可能没有这个故障的详细信息,比如可能仅仅是有使用方反馈服务中断了10分钟; (3)你对代码细节还没有仔细研究过。 这个时候该怎么解决问题呢?根据以转载 2016-10-04 13:38:03 · 4613 阅读 · 1 评论 -
Java应用线上问题排查的常用工具和方法
在长期排查线上问题的过程中,总结了一些工具的用法和排查问题的思路,这里跟大家分享一下,在遇到类似的问题时,希望能给予一些帮助。 首先讲讲工具, jvm 自带的一些工具是必须熟练掌握的,例如jstack, jmap, jstat等,它们可以帮我们去深入了解JVM正在做的事情,主要的适用领域有这些:1、jstack jstack可以告诉你当前所有JVM线程正在做什么,包括用转载 2016-10-04 13:37:03 · 1954 阅读 · 1 评论 -
利用 Java dump 进行 JVM 故障诊断
本文将向读者介绍利用 Java dump 诊断 JVM Crash 和 CPU 饥饿等问题的方法和技巧,以便使用户更加全面的了解 Java dump 在故障诊断过程中的作用。引言对于大型 java 应用程序来说,再精细的测试都难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录转载 2016-07-26 14:13:36 · 2917 阅读 · 0 评论 -
JVM需要熟练掌握的知识点
第一周初识JVMJVM分类Java语言规范JVM规范介绍JVM的基本知识和发展历史,并介绍了Java语言规范和JVM规范。第二周JVM运行机制简介堆、栈、方法区等JVM启动流程内存模型和volatile实例解释和编译运行的概念介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。第三周常用JVM参数堆的分配参数转载 2016-07-26 13:03:20 · 745 阅读 · 0 评论 -
JConsole使用手册详解
一篇Sun项目主页上介绍JConsole使用的文章,前段时间性能测试的时候大概翻译了一下以便学习,今天整理一下发上来,有些地方也不知道怎么翻,就保留了原文,可能还好理解点,呵呵,水平有限,翻的不好,大家多多包涵。JConsole毕竟是JDK自带的东西,功能虽然没有一些商业软件那么强大,但是稳定性好,在大压力情况下也不会发生什么问题。而且,提供了相对全面的系统监控功能,还是值得一用的。转载 2016-07-26 13:00:51 · 626 阅读 · 0 评论 -
JVM性能调优之生成堆的dump文件
最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过转载 2016-07-26 12:58:19 · 4615 阅读 · 0 评论 -
JVM优化配置指导手册(2)
你知道如何配置JVM内存分配吗,这里和大家分享几个妙招,安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。一、配置JVM内存1.配置JVM内存的参数有四个:-XmxJavaHeap最大值,默认值为物理转载 2016-07-26 12:52:59 · 324 阅读 · 0 评论 -
JVM优化配置指导手册(1)
本文向大家简单介绍一下JVM优化配置的概念,通常情况下是不建议在没有任何统计和分析的情况下去手动配置JVM的参数来调整性能,因为在JVM5以上已经作了根据机器和OS的情况自动配置合适参数的算法,基本能够满足大部分的情况。JVM优化配置这里首先要说明的是这里提到的JVM是Sun的HotSpotJVM5和以上的版本。性能优化在应用方面可以有很多手段,包括Cache,多线程,各种算法等等转载 2016-07-26 12:52:15 · 241 阅读 · 0 评论 -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
ava application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc.转载 2016-07-26 12:48:37 · 238 阅读 · 0 评论 -
JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同转载 2016-07-26 12:46:38 · 510 阅读 · 0 评论 -
JVM系列二:GC策略&内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,te转载 2016-07-26 12:45:36 · 253 阅读 · 0 评论 -
JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发转载 2016-07-26 12:43:18 · 259 阅读 · 0 评论 -
JVM中Perm区持续上涨问题
公司一位大牛在微博上的一条,打算消化一下,毕竟今后Perm区的上涨还是有可能遇到的。“Java应用Perm区一直呈上涨趋势的原因可以用一个简单的办法排查,就是用btrace去跟踪下是什么地方在调用ClassLoader.defineClass,在大多数情况下这招都是管用的。”(1)Perm区存放的啥信息? Perm叫做持久代,存放了类的信息、类的静态变量、类中fi转载 2017-07-11 15:31:56 · 651 阅读 · 0 评论