JVM调优
1, 不是分配的内存越大越好, 内存越大full gc时处理的数据就越多,阻塞的时间就越长。
2, 如果系统小对象多,Young区最好大一点
3, 如果系统session对象多, Old区要大一点
4, 如果有大量的对象没有进过9次Young区迭代而是因为suvivor区不够了就进入old区时,需要调整SurvivorRatio 的比例
5, 有时需要导出head dump文件分析系统中有多少个对象,变化的趋势如何
http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
-----------------
JVM内存区域分为
栈内存 (虚拟机栈,本地方法栈, 计数器)
堆内存 (GC堆, 方法区)
方法区-即永久代, 存放class相关信息,常量池等。
GC堆分为 young区 old区 survivor区
垃圾收集算法
1, 复制算法 young区 默认8:1的比例 复制到survivor区, 新生代中的对象98%都是朝生夕灭的。
2, 标记-整理算法 old区 为了避免大量的不连续的内存碎片, 回收后将所有存活对象向一段移动。
垃圾收集器
1, Serial + Serial Old 单线程的 适用于client模式
2, ParNew + CMS 多线程版, 适用于server模式
3, Parallel 吞吐量优先 , 适合在后台运算而不需要太多交互的任务
4, G1 收集器, JDK7出来的新的收集器
CMS
初始标记 -- 并发标记 -- 重新标记 -- 并发清除
进入old区的方式
1, minorGC时 survivor 放不下
2, 大对象直接进入old区 需设置大小
3, 长期存活的对象 默认15次minorGC 还存活的
附HPSC的JVM配置
物理内存64G 32个CPU HPUX
共有4个instance,
每个instance占有7G的内存
-d64
-XX:MaxPermSize=768m
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-Xms7g
-Xmx7g
-XX:PermSize=768m
-XX:NewSize=2g //年轻代
-XX:MaxNewSize=2g //
-XX:CMSInitiatingOccupancyFraction=70
-Xverbosegc:file=./servers/producerA1.1/logs/gc.log
-XX:ParallelCMSThreads=4
-XX:CMSMarkStackSize=512M
-XX:CMSMarkStackSizeMax=512M
-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSInitiatingOccupancyOnly
-XX:MaxTenuringThreshold=9
-XX:SurvivorRatio=6
-Dappserver.home.dir=/opt/sasuapps/itrc/domain/itrc/servers/producerA1.1
-Dfile.encoding=UTF-8
-Djavax.net.ssl.trustStore=/opt/bea/security/trustedCAs.jks
-Djava.util.logging.config.file=/opt/sasuapps/itrc/openportal1/config/openportal_logging.properties
-DLOG_ROOT=/opt/sasuapps/itrc/logs/producerA1.1
-Dcom.sun.org.apache.xml.internal.dtm.DTMManager=com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault
-Dcom.sun.management.jmxremote.port=40002
-Dcom.sun.management.jmxremote.password.file=/opt/sasuapps/itrc/perf/jmxremote.password
-Dcom.sun.management.jmxremote.ssl=false
-Dsbs.lifecycle=PROD
-Dsun.net.inetaddr.ttl=30
-Djava.awt.headless=true
-Dsbs.core.keystore.disable=true
-Dhttp.proxyHost=web-proxy.corp.hp.com
-Dhttp.proxyPort=8080
-Dhttp.nonProxyHosts=localhost|*.austin.hp.com|*.atlanta.hp.com|*.houston.hp.com
-Dehcache.disk.store.dir=/opt/sasuapps/itrc/global_resources/portlet/data/ehcache/producerA1.1
-d64
Producer 物理机器和instance的分布
- 大小: 34.8 KB
分享到:
相关推荐
JVM与GC调优课程视频 〖课程介绍〗: JVM与GC调优课程视频 〖课程目录〗: 1.笔记/ ├── 第1篇-字节码篇.png?x-oss-process=style/pnp8 ├── 第2篇-类的加载篇.png?x-oss-process=style/pnp8 ├── 第3篇-运行时...
### JVM_GC调优详解 #### 一、JVM体系结构概览 Java虚拟机(JVM)作为Java程序的运行环境,其内部结构复杂且高效。为了更好地理解JVM_GC调优,我们首先来了解一下JVM的基本组成部分。 1. **类装载器子系统(Class ...
3. 不稳定参数(不稳定参数):以“-XX”开头,这些是非标准化参数,主要用于JVM调优和Debug。它们可以开启或关闭某些特性,或者对某些特性设置具体的数值。例如,“-XX:+UseConcMarkSweepGC”用于启用CMS垃圾回收器...
该文档是关于java虚拟机的原理,描述及调优视频,其中,详细讲述了jvm的运行机制,类装载器,GC算法,性能监控工具,堆,锁等内容。
【标题】"Tomcat JVM参数调优"涉及的是在运行Apache Tomcat服务器时优化Java虚拟机(JVM)性能的过程。Tomcat是一个流行的开源Java应用服务器,它用于部署和运行Java Servlets和JavaServer Pages(JSP)。由于JVM是...
标题中提到了JVM原理、JVM调优、JVM内存模型和JAVA并发,这些都是Java虚拟机(JVM)相关的核心概念。JVM是运行Java字节码的虚拟计算机,为Java提供了一个跨平台的环境,确保Java程序可以在不同的操作系统上运行而...
### JVM原理及调优 #### 一、JVM概述 JVM(Java Virtual ...总之,深入理解JVM的原理及其运行机制对于Java开发者来说至关重要,特别是在大规模分布式系统中,良好的JVM调优能够显著提高系统的稳定性和响应速度。
JVM内存设置与调优是提升应用性能的关键环节,对于大型系统尤其重要。本指南将深入探讨JVM内存模型,以及如何通过调整相关参数来优化性能。 首先,我们需要理解JVM的内存结构。JVM内存主要分为以下几个区域: 1. *...
jvm java虚拟机 调优 马士兵 笔记 让你对java虚拟机调优有初步的认识
JAVA应用JVM原理及参数调优深入讲解视频.1 JAVA应用JVM原理及参数调优深入讲解视频.2 JAVA应用JVM原理及参数调优深入讲解视频.3 JAVA应用JVM原理及参数调优深入讲解视频.4 JAVA应用JVM原理及参数调优深入讲解视频.5 ...
本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...
java jvm内存结构 调优
JVM 调优方式 JVM 调优是一种非常重要的技术,它能够帮助我们提高 Java 应用程序的性能和稳定性。在这篇文章中,我们将探讨 JVM 调优的重要性和各种调优方式。 首先,需要注意的是,在对 JVM 内存调优的时候不能只...
JVM性能监控与调优实战课程,作为整篇课程的重中之重,非常值得同学们参考学习。课程前端讲解了JVM的性能监控和调优的概述,对调优的的方法和工具进行讲解学习,让同学们掌握方法,理解知识。课程的中间阶段我们进行...
JVM性能调优总结 JVM性能调优是Java开发中非常重要的一方面,直接影响到系统...JVM性能调优需要根据实际情况进行调整和选择合适的参数设置。同时,需要注意到操作系统、JDK版本、应用程序等因素对JVM性能调优的影响。
首先,JVM调优主要包括堆内存分配、垃圾收集器选择、线程池配置、类加载机制调整等方面。堆内存是Java应用的主要内存区域,分为新生代、老年代和永久代(Java 8后改为元空间)。合理的堆大小分配可以避免频繁的Full ...
### JVM内存参数调优详解 #### 一、概述 Java虚拟机(JVM)是执行Java字节码的软件环境,为了提高Java程序的性能和稳定性,合理调整JVM的内存参数至关重要。根据Java启动参数的不同分类,我们可以将其分为标准参数...
jvm性能调优+内存模型+虚拟机 jvm性能调优+内存模型+虚拟机 jvm性能调优+内存模型+虚拟机