`
dxm1986
  • 浏览: 435053 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JVM内存参数设置

    博客分类:
  • jvm
阅读更多

JVM内存参数设置  
 
(A)
PermGen space:全称是Permanent Generation space。就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域
Heap space:存放Instance。

(B)GC(Garbage Collection)应该不会对PermGen space进行清理
所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误



(1)Heap设定与垃圾回收Java Heap分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象. 

(2)JVM的Heap分配可以使用-X参数设定, 

(9)+XX:AggressiveHeap会使得 Xms 1220m没有意义 
  

-Xms 初始Heap大小  
-Xmx java heap最大值 ,不应该超过物理内存的90% 
-Xmn young generation的heap大小 


  
(3)
JVM有2个GC线程。第一个线程负责回收Heap的Young区。第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区。Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。
(4)如果你发现每次GC后,Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态。许多Server端的Java程序每次GC后最好能有65%的剩余空间
(5)Server端JVM最好将-Xms和-Xmx设为相同值。为了优化GC,最好让-Xmn值约等于-Xmx的1/3[2]。
(6)一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成[2]。
(7)Stack的设定
每个线程都有他自己的Stack。

 
-Xss 每个线程的Stack大小,最佳值应该是128K,默认值好像是512k. 

Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。
(8)
修改deploy/jbossweb-tomcat55.sar/service.xml
将maxThreads根据目前的访问量由默认的250降为75,并使用jboss 4默认未写在标准service.xml里面而jboss 3写入了的2个参数: maxSparseThreads=55
http://zhidao.baidu.com/question/42973628.html

分享到:
评论
1 楼 dxm1986 2011-05-04  
-Xss 每个线程的Stack大小,最佳值应该是128K,默认值好像是256k.

相关推荐

    JVM内存模型深度剖析与优化.pdf

    二、JVM内存参数设置 JVM内存参数的设置对Java应用程序的性能有着至关重要的影响。以下是一些常见的JVM内存参数: 1. -Xms:设置初始堆大小。 2. -Xmx:设置最大堆大小。 3. -Xmn:设置新生代大小。 4. -Xss:设置...

    JVM内存参数详解以及配置调优

    JVM 内存参数详解以及配置调优 JVM 内存参数是 Java 虚拟机中最重要的参数之一,它直接影响着 Java 应用程序的性能和稳定性。在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、...

    02-VIP-JVM内存模型深度剖析(1)1

    2. JVM内存参数设置: - `-Xms` 和 `-Xmx` 分别代表初始堆内存和最大堆内存大小,例如 `-Xms2048M -Xmx2048M` 指定堆内存为2GB。 - `-Xmn` 设置新生代的大小,如 `-Xmn1024M` 表示新生代为1GB。 - `-Xss` 设置每...

    JVM内存溢出问题解析

    二是物理解决,增大物理内存,然后通过调整 JVM 的参数来调整内存的大小。 JVM 内存溢出类型有两种:java.lang.OutOfMemoryError: PermGen space 和 java.lang.OutOfMemoryError: Java heap space。PermGen space ...

    jvm内存参数调优

    ### JVM内存参数调优详解 #### 一、概述 Java虚拟机(JVM)是执行Java字节码的软件环境,为了提高Java程序的性能和稳定性,合理调整JVM的内存参数至关重要。根据Java启动参数的不同分类,我们可以将其分为标准参数...

    开发测试环境Docker及JVM内存限制部署方案

    该文档描述了开发测试环境中Docker及JVM内存限制部署方案

    02-VIP-JVM内存模型深度剖析(预习)1

    二、JVM内存参数设置 在Spring Boot程序中,JVM参数通常在启动脚本中设置,例如`catalina.sh`。以下是一个示例: ``` java -Xms2048M -Xmx2048M -Xmn1024M -Xss512K -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=...

    tomcat6.0 修改启动内存设置 java jvm参数配置

    在调整 Tomcat 的内存设置之前,我们需要了解一些基本的 JVM 内存参数: 1. **`-Xms`**:设置 JVM 启动时的初始堆内存大小。 2. **`-Xmx`**:设置 JVM 运行时的最大堆内存大小。 3. **`-Xmn`**:设置年轻代 (Young ...

    JVM内存参数调优

    本文将深入探讨JVM内存参数调优的相关知识点,帮助开发者更好地理解并掌握如何优化JVM的内存设置。 #### JVM内存概述 JVM内存主要分为以下几个部分: 1. **堆内存(Heap Memory)**:用于存储对象实例、数组等...

    JVM内存空间分配笔记

    - 合理设置JVM参数,如-Xms、-Xmx等。 - 适时使用软引用、弱引用等减少内存消耗。 - 对于大对象,考虑使用对象池技术复用。 #### 八、Java性能监控与调优 Java性能监控是评估和提高Java应用程序性能的重要工具...

    JVM内存配置优化

    ### JVM内存配置优化 #### 一、理解JVM内存模型 在进行JVM内存配置优化之前,我们需要了解Java虚拟机(JVM)的内存结构。Java的逻辑内存模型大致分为几个部分: 1. **堆内存(Heap)**:主要用于存储对象实例、数组...

    堆内存及JVM内存设置参数 小笔记

    本文档涉及Java虚拟机(JVM)的堆内存分配和管理,以及相关的JVM内存设置参数。堆内存是Java中用于存储对象实例的区域,它在JVM内存模型中占据核心位置。在深入理解堆内存结构及其设置参数之前,我们需要明确几个...

    设置Eclipse内存参数

    #### 三、调试模式下JVM内存参数设置 在进行调试时,可能还需要单独设置调试模式下的JVM内存参数: **步骤1:** 打开Eclipse,选择`Run > Debug Configurations`。 **步骤2:** 在弹出的窗口中,选择需要调试的...

    idea插件JVM内存工具JProfiler11

    5. **JVM配置调整**:JProfiler11还可以提供JVM参数建议,帮助开发者正确设置JVM初始堆大小、最大堆大小、内存池等关键参数,确保应用程序稳定运行。 在实际使用中,JProfiler11的详细报告和可视化界面使得问题定位...

    java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优

    特别是在大数据处理场景下,合理设置JVM内存参数显得尤为重要。本文将深入探讨JVM内存管理的基础概念、内存设置方法及其调优策略,以帮助开发者避免常见的`java.lang.OutOfMemoryError`异常,提升应用性能。 #### ...

    JVM内存设置方法.docx

    JVM内存设置方法 JVM(Java Virtual Machine)是 Java 程序的运行环境,为了提高 Java 程序的性能,需要合理地设置 JVM 的内存分配。下面将详细介绍 JVM 内存设置的方法。 一、 JVM 内存设置参数 JVM 内存设置...

    JVM常用参数设置

    本文将深入探讨JVM的常用参数设置,以及它们如何影响Java应用程序的运行。 一、JVM内存设置 1. **堆内存**: - `-Xms`:初始堆大小,例如`-Xms256m`表示初始分配256MB内存。 - `-Xmx`:最大堆大小,例如`-Xmx...

Global site tag (gtag.js) - Google Analytics