摘要: 前言: 由于最近写的程序在运行一段时间后出现高cpu,然后不可用故进而进行排查,最终定位到由于metaspace引起fullgc,不断的fullgc又占用大量cpu导致程序最终不可用。下面就是这次过程的分析排查和总结,便于以后温故,同时也希望能给遇到同样问题的同学一些参考。 一 jvm的内存分配情况 阅读全文
posted @ 2019-08-09 16:51 技术研究与问题解决 阅读(2206) 评论(0) 推荐(0)
摘要: 1.背景 2.为什么废弃永久代(PermGen) 3.深入理解元空间(Metaspace) 4.总结 正文分割线 一、背景 1.1 永久代(PermGen)在哪里? 根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了): 上图引自网络,但有个问题:方法区和heap堆都是线程共享的内存 阅读全文
posted @ 2019-08-09 16:39 技术研究与问题解决 阅读(297) 评论(0) 推荐(0)
摘要: 什么是方法区? 方法区(Method Area)是jvm规范里面的运行时数据区的一个组成部分,jvm规范中的运行时数据区还包含了:pc寄存器、虚拟机栈、堆、方法区、运行时常量池、本地方法栈。 方法区存储东西? 主要用来存储class、运行时常量池、字段、方法、代码、JIT代码等。 注意: (1)运行 阅读全文
posted @ 2019-08-09 16:17 技术研究与问题解决 阅读(576) 评论(0) 推荐(0)