随笔分类 - JVM
摘要:JVM(Java Virtual Machine:译为 Java虚拟机)内核: 通常指通过软件模拟的具有完整硬件系统功能的运行在一个完全隔离环境汇总的完整计算机系统。如下: ■ Mware/Visul Box:使用软件模拟物理CPU的指令集; ■ JVM:使用软件模拟 Java字节码指令集;Java
阅读全文
摘要:案例一:老年代内存泄漏 某晚八点收到报警邮件,一看是OOM: 打开 hickwall查看指标:JVM各项指标中 老年代在持续增长(从上次发布10月30号到11月10号的 12天 一直在增长,存在内存泄露迹象) 但并没有达到老年代的上限,当时总内存4G,按照默认80%的分配比例,java虚拟机
阅读全文
摘要:对象头[每个对象都具有对象头] Mark:对象头的标记(32位),描述对象的 hash、锁信息、垃圾回收标记、年龄;内容包括:①、指向锁记录的指针;②、指向 monitor 的指针;③、GC 标记;④、偏向锁线程 ID; 一、偏向锁 偏向锁无法使用自旋锁优化,因为一旦有其他线程申请锁,就破坏了偏向
阅读全文
摘要:一、什么情况下会发生栈内存溢出 【1】线程请求的栈深度大于虚拟机所允许的深度,将抛出 StackOverflowError 异常。递归的调用一个简单的方法,不断累积就会抛出 StackOverflowError 异常。【2】如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出 OutOfMemo
阅读全文
摘要:一、整体架构 二、强引用(默认支持) 当内存不足,JVM 开始垃圾回收,对于强引用的对象,就算是出现了 OOM 也不会对该对象进行回收,死都不收。强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾回收器不会碰这种对象。在Java 中最常见的就是强引用,把一
阅读全文
摘要:更多内容,移步IT-BLOG 排查思路 【1】定位高负载进程 pid:登录进服务器使用 top 或 top -c命令[ps -ef | grep xxx 命令]查看当前 CPU消耗过高的进程,从而得到进程id。观察各个进程资源使用情况,可以看出进程id为18571的进程,有着较高的CPU占比。按P(
阅读全文
摘要:在分享此案例前,先聊聊哪些场景会导致频繁Full GC: 内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及时回收)死循环大对象程序执行了System.gc() 尤其是大对象,80%以上的情况就是他。 那么大对象从哪里来的:【1】数据库(包括 Mysql和 Mongodb等 NOSql数据库)
阅读全文
摘要:计算机是不能直接运行 java代码的,必须要先运行 java虚拟机,再由java虚拟机运行编译后的 java代码。这个编译后的 java代码,就是本文要介绍的java字节码。计算机截止目前只认识0和1,但虚拟机以及大量建立在虚拟机之上的程序语言如雨后春笋般出现并蓬勃发展,将我们编写的程序编译成二进制
阅读全文
摘要:更多内容,访问 IT-BLOG ThreadLocal 并不是一个Thread,而是 ThreadLocalVariable(线程局部变量)。也许把它命名为 ThreadLocalVar更加合适。线程局部变量就是为每一个使用该变量的线程都提供一个变量值的副本,是 Java中一种较为特殊的线程绑定机制
阅读全文
摘要:更多内容,前往 IT-BLOG 虚拟机设计团队把类加载阶段中的 “通过一个类的全限定名来获取描述此类的二进制字节流” 这个动作放到 Java虚拟机外部去实现,以便应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 从 Java 虚拟机的角度上,只存在两种不同的类加载器:一
阅读全文
摘要:Thread Dump介绍 Thread Dump是非常有用的诊断 Java应用问题的工具。每一个 Java虚拟机都有及时生成所有线程在某一点状态的 thread-dump的能力,虽然各个 Java虚拟机打印的 thread dump略有不同,但是大多都提供了当前活动线程的快照,及 JVM中所有 J
阅读全文
摘要:更多内容,前往 IT-BLOG Java 开发人员肯定都知道 JDK的 bin 目录中有 “java.exe”、“javac.exe” 这两个命令行工具。下面主要介绍一些监视虚拟机和故障处理的工具。 Jvm 入门工具 jps(JavaVirtual Machine Process Status To
阅读全文
摘要:对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解
阅读全文