`
zsjg13
  • 浏览: 142243 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Sizing Permgen and Metaspace

    博客分类:
  • Java
阅读更多

当JVM加载classes时,它必须跟踪关于这些classes的特定的元数据。这样的元数据被放在一个独立的heap space中。Java 7里叫permgen,Java 8里叫metaspace。

 

Permgen和metaspace不是同一个东西。java 7里,permgen包含了一些杂项对象(和class data无关);它们在Java 8里被移到了平常的heap中去了。Java 8还从根本上改动了保存在

该特殊区域里的元数据的类型。作为一般用户,我们只需要知道permgen和metaspace存储了一些class相关的数据,在特定的情况下,这些区域的size需要被调整。

 

注意permgen/metaspace不会存储实际的类的实例,也不会存储反射对象(比如说Method对象);这些对象是放在regular heap中。permgen/metaspace里的信息只会被编译器和

JVM运行时使用,这些信息叫作class metadata。

 

没有一个好的方法预先计算出一个程序它的permgen/metaspace需要多少空间。该空间大小将和class的数量成比例,所以大的程序将需要更大的区域。metaspace不需要调整,因为它

默认会根据需要使用尽量多的空间。

JVM Default initial size Default maximum permgen size Default maximum metaspace size

32-bit client JVM 12 MB 64 MB Unlimited

32-bit server JVM 16 MB 64 MB Unlimited

64-bit JVM 20.75 MB 82 MB Unlimited

 

permgen的size通过-XX:PermSize=N和-XX:MaxPermSize=N来指定

metaspace的size通过-XX:MetaspaceSize=N和-XX:MaxMetaspaceSize=N来指定

 

Metaspace太大了?

因为metaspace的默认size不受限制,那就有可能(特别是在一个32位的JVM中)一个Java 8应用填满了metaspace,造成了内存溢出错误。第8章里谈到的Native Memory Tracking

工具可以帮助诊断该情况。如果metaspace增长变得太大了,你可以降低MaxMetaspaceSize的值——但填满后,应用最终会报告OutOfMemoryError。弄清楚为什么class metadata

太大才能真正解决该问题。

 

Resizing这些区域需要一个full GC,因此这是一个昂贵的操作。如果在一个程序的启动过程中(加载classes),有大量的full GCs,那常常是因为permgen或metaspace正在被resized,

因此加大初始大小是一个不错的主义。定义了大量classes的Java 7应用程序应当还要加大maximum size。应用服务器通常将maximum permgen size指定为128MB、192MB,或更多。

 

Heap dumps可以被用来诊断有哪些classloaders存在,之后就可以帮助决定if a classloader leak is filling up permgen(or metaspace)。否则的话,jmap带上-permstat(java 7)或

-clstats(Java 8)可以打印出关于classloaders的信息。

分享到:
评论

相关推荐

    pi Sizing and Performance Tuning

    ### PI Sizing与性能调优详解 #### 一、引言 在当今的企业环境中,服务导向架构(SOA)已成为连接不同系统和服务的关键技术之一。SAP NetWeaver Process Integration (PI)作为SOA中间件的重要组成部分,在企业内部...

    GAMBIT Tips and Tricks Sizing Function and Boundary Layers

    GAMBIT网格加密技巧是指在GAMBIT软件中使用Sizing Functions和Boundary Layers来控制网格生成的技术。在GAMBIT中,Sizing Functions和Boundary Layers是mesh control工具,用于控制网格的增长。 Sizing Functions是...

    PSO.rar_optimal radial _optimal sizing_optimal sizing and_pso ma

    A Binary Particle Swarm Optimization for Optimal Placement and Sizing of Capacitor Banks in Radial Distribution Feeders with Distorted Substation Voltages

    elasticsearch-sizing-and-capacity-planning.pdf

    Elasticsearch作为Elastic Stack的核心组件,支持日志、指标、追踪和搜索功能。对于Elastic Stack的任何生产部署,都需要以Elasticsearch的容量规划为指导。容量规划涉及估计运行Elasticsearch部署所需资源的类型和...

    Active Workspace Architecture and Sizing.pptx

    Active Workspace Architecture and Sizing Active Workspace Architecture and Sizing是Siemens AG于2017年发布的一份关于active workspace系统架构和规模设计的PPTX文件。该文件详细介绍了Active Workspace系统的...

    详解CSS3中的box-sizing(content-box与border-box)

    CSS3中的box-sizing(content-box与border-box) CSS3中的box-sizing 属性允许以特定的方式来指定盒模型,有两种方式: content-box:标准盒模型,又叫做 W3C盒模型,一般在现代浏览器中使用的都是这个盒模型 border...

    电机选型软件-CONTROL MOTOR SIZING安装包 东方电机安装包.zip

    "CONTROL MOTOR SIZING"是一款专业的电机选型软件,专为工程师设计,以帮助他们在项目初期选择最适合的电机。这款软件由东方电机提供,旨在确保用户能够精确地根据负载需求和工作条件来确定电机的规格。 东方电机是...

    css详解box-sizing.zip

    在CSS世界中,Box Sizing属性是一个至关重要的概念,它决定了元素的尺寸计算方式,从而影响布局和设计。"css详解box-sizing.zip"这个压缩包包含了一系列关于Box Sizing的资料,包括HTML文档、图像和文本说明,帮助...

    SAP服务器 Sizing注释

    SAP服务器 Sizing注释 如何选择SAP服务器

    SAP sizing

    SAP sizing ,quick sizer. 硬件规格预估,SAP hana。

    Initial Sizing3.0_总体设计起飞参数_

    在民航客机的设计过程中,"Initial Sizing3.0_总体设计起飞参数_"是一个至关重要的环节,它涉及到飞机性能计算的核心部分。这个阶段主要是对新飞机的初步尺寸设定,包括起飞重量、单发推力等多个关键参数的确定,...

    Panasonic AC Sizing Wizard HD 5.0.0

    Panasonic AC Sizing Wizard HD 5.0.0 大小:45.13MB 更新时间:2015-01-18 Optimised for Tablets, The Panasonic Aircon Sizing Wizard.Not sure what size air conditioner you need? This is the app for you...

    SAP cProject Sizing

    根据提供的文件信息,我们可以深入探讨"SAP cProject Sizing"这一主题的相关知识点。从文档的标题、描述以及部分内容来看,本文档主要介绍了SAP cProject Sizing的使用指南及其版权信息。下面将对这些信息进行详细...

    Control Valve sizing handbook_Dresser Masoneilan

    This handbook on control valve sizing is based on the useof nomenclature and sizing equations from ANSI/ISAStandard S75.01.01 and IEC Standard 60534-2-1.Additional explanations and supportive ...

    The position sizing game

    when you trade ,you can use it to practise your ability to trade in you work.thankds!

    The gm_ID Methodology, a sizing tool for low-voltage analog CMOS Circuits

    根据提供的文件信息,以下内容将详细介绍有关标题“The gm_ID Methodology, a sizing tool for low-voltage analog CMOS Circuits”中所涉及的知识点。 标题中提到的“gm_ID Methodology”是指一种用于尺寸设计的...

    分布式电源的电力系统选址定容.rar

    (It is convenient and practical for locating and sizing power system with distributed generation.) 文件列表: 选址定容\33节点测试系统.xls, 22528 , 2016-08-16 选址定容\ddeee.asv, 2723 , 2016-08-16 ...

    box-sizing.docx

    在网页设计中,`box-sizing` 是一个至关重要的CSS属性,它改变了元素边框和内填充对其总尺寸的影响。理解并正确使用`box-sizing`能够帮助开发者更好地控制元素的布局,避免因尺寸计算方式的不同而导致的布局混乱。...

    关于box-sizing的全面理解

    box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。 例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box"。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内...

    欧姆龙 MotorSizingTool_v1.20

    The Motor Sizing Tool helps to select the appropriate motor and drive from the mechanical structure in which the motor is to be used, and from the operating patterns, mass, reduction ratio and other ...

Global site tag (gtag.js) - Google Analytics