- 浏览: 332761 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (140)
- oracle (2)
- j2se (18)
- 应用服务器 (2)
- 操作系统 (21)
- j2ee (3)
- web (9)
- Junit (0)
- 项目 (0)
- IDE (0)
- 五花八门 (1)
- excel导入导出 (0)
- DWR (0)
- display标签总结 (0)
- JS (7)
- FCKeditor (0)
- Spring (3)
- webservice (1)
- JVM (14)
- 传输协议 (6)
- maven (3)
- 服务器 (2)
- 数据结构 (11)
- HTTPClient (2)
- JQUERY (9)
- 设计模式 (4)
- 数据库 (6)
- 看书笔记 (0)
- 工具 (4)
- MINA (3)
- mysql (5)
- jetty (1)
- JAVA网络编程 (7)
- Hessian (1)
- ibatis (1)
- socket (4)
- Native (1)
- http (2)
- nosql (2)
- linux (1)
- hadoop (1)
最新评论
-
applezjv:
可以...
maven常见问题 -
andyboy_bin:
p
Jetty -
ye_wx:
...
TableSpace -
ye_wx:
TableSpace -
极限_裁决:
引用第二:不要把“好像”;“有人会……”;“大概”;“晚些时候 ...
可以让你少奋斗10年的工作经验
OOM
这
个缩写就是Java程序开发过程中让人最头痛的问题:Out of
Memory。在很多开发人员的开发过程中,或多或少的都会遇到这类问题,这类问题定位比较困难,往往需要根据经验来判断可能出现问题的代码。原因主要是
两个:对象没有被释放(多种情况引起,往往是比较隐蔽的引用导致被Hold而无法被回收)。另一种就是真的Memory不够用了,需要增加JVM的
Heap来满足应用程序的需求。最近有同事发的关于解决OOM的问题,让我了解了原来OOM除了在JVM Heap不够时会发生,在Native
Heap不够的时候也会发生,同时JVM Heap和Native
Heap存在着相互影响和平衡的关系,因此就仔细的去看了关于OOM和JVM配置优化的内容。
《二》
java
-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20
-Xmx3800m -Xms3800m
配置了最大Java Heap来充分利用系统内存。-Xmn2g
创建足够大的青年代(可以并行被回收)充分利用系统内存,防止将短期对象复制到老年代。
-Xss128
减少默认最大的线程栈大小,提供更多的处理虚拟内存地址空间被进程使用。
-XX:+UseParallelGC
采用并行垃圾收集器对年青代的内存进行收集,提高效率。
-XX:ParallelGCThreads=20
减少垃圾收集线程,默认是和服务器可支持的线程最大并发数相同,往往不需要配置到最大值。
2
.尝试采用对老年代并行收集
java
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC
-Xmx3550m -Xms3550m
内存分配被减小,因为ParallelOldGC会增加对于Native Heap的需求,因此需要减小Java Heap来满足需求。
-XX:+UseParallelOldGC
采用对于老年代并发收集的策略,可以提高收集效率。
3
.提高吞吐量,减少应用停顿时间
java
-Xmx3550m -Xms3550m -Xmn2g
-Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC
-XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90
-XX:MaxTenuringThreshold=31
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC
选择了并发标记交换收集器,它可以并发执行收集操作,降低应用停止时间,同时它也是并行处理模式,可以有效地利用多处理器的系统的多进程处理。
-XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=31
表示在青年代中Eden和Survivor比例,设置增加了Survivor的大小,越大的survivor空间可以允许短期对象尽量在年青代消亡。
-XX:TargetSurvivorRatio=90
允许90%的空间被占用,超过默认的50%,提高对于survivor的使用率。
类似的例子网上很多,这儿就不在列下来了,最终是否采取自己配置来替换默认配置还是要根据虚拟机的使用情况来分析和配置。
发表评论
-
java诊断工具
2013-04-01 19:12 1421jstack -- 如果java程序崩溃生成core文件,j ... -
java枚举Enum
2013-01-14 14:43 1224public class TestEnum { /* ... -
Java 动态代理机制分析及扩展,第 1 部分
2012-03-26 12:47 780引言 Java 动态代理机制的出现,使得 Java 开 ... -
详解reflect Java的反射机制
2012-03-23 13:09 1023一、类型识别的两种方式: 首先了解一下“运 ... -
B树、B-树、B+树、B*树详解
2012-01-18 00:47 1972B树、B-树、B+树、B*树都是什么 B树 ... -
数据结构 二叉树(B树)
2012-01-18 00:41 1424BTree 特征: 1.一个节点最多只有两个子节点,其 ... -
B树温习
2012-01-18 00:36 756B树 即二叉搜索树: 1 ... -
JVM内存分析及导致内存溢出的不健壮代码及解决办法<转载>
2011-11-30 19:07 0一、JVM内存区域组成 java把内存分四种: 1、栈区( ... -
从JVM内存管理的角度谈谈静态方法和静态属性《转》
2011-11-30 19:06 0作者 robbin (http://hibernate.fan ... -
Annotation 之 jdk1.5内建的Annotation实例
2011-11-15 20:25 891一、限定Override父类方法@Override ja ... -
自定义Annotation
2011-11-15 20:24 721自定义Annotation 自定义Annotation早 ... -
Java Annotation
2011-11-14 22:04 0Java Annotation手册 ... -
集合类源码
2011-11-06 04:04 1008主要包括Java类库中提供的几个具体的类: LinkedLis ... -
classloader 三
2011-10-24 23:22 913jvm classLoader architecture ... -
ArrayList和Vector以及HashTable和HashMap区别
2011-10-12 10:40 1027ArrayList和Vector以及HashTable和Has ... -
jvm内存存储分析
2011-10-11 17:21 1471Java内存分配与管理是Jav ... -
JVM
2011-10-06 21:15 1475安装Java开发软件时,默认安装包含两个文件夹,一个JDK(J ... -
java序列化
2011-10-04 23:48 785有关Java对象的序列化和反序列化也算是Java基础的一部 ... -
JVM慢慢琢磨
2011-08-20 22:05 930原文:http://www.iteye.com/ ... -
内存分配策略
2011-08-20 21:32 862内存分配策略 按照编译原理的观点,程序运行时的内存分配 ...
相关推荐
**JVM性能优化** 在Java开发中,JVM(Java Virtual Machine)是至关重要的组成部分,它负责运行所有的Java应用程序。JVM性能优化是一项细致而关键的任务,能够显著提升程序的运行效率,减少资源消耗,提高系统稳定...
在Java开发中,Java虚拟机(JVM)是...4. SpringBoot应用中的JVM优化配置。 5. 使用监控工具进行性能分析和故障排查。 通过这个项目,开发者可以深入理解JVM的工作原理,并掌握如何在实践中优化Java应用程序的性能。
### JVM内存配置优化 #### 一、理解JVM内存模型 在进行JVM内存配置优化之前,我们需要了解Java虚拟机(JVM)的内存结构。Java的逻辑内存模型大致分为几个部分: 1. **堆内存(Heap)**:主要用于存储对象实例、数组...
"jvm优化参数配置"是确保Tomcat稳定运行的关键环节,能够提高应用的响应速度,减少内存泄露,提升系统整体性能。以下是对JVM参数优化的详细解释: 1. **内存配置**: - **堆内存(Heap Memory)**:分为新生代...
1.什么是编程语言。 编程思想比编程语言更加重要 2.为什么要进行性能优化。 3.性能优化的瓶颈 ...JVM优化配置 Tomcat优化配置 4。数据库优化 1.减少数据访问 索引 sql的执行计划 2.减少返回的数据 分页
在JVM优化中,内存配置是关键的一环。例如,`-Xms2048m -Xmx2048m`设置了JVM的最小和最大堆内存为2GB,`-Xmn512m`指定了新生代的大小为512MB,`-XX:MaxPermSize=256m`设定了永久代的最大值为256MB,而`-Xss128k`则...
为了深入理解JVM优化的相关知识点,我们可以从多个角度来探讨。首先,需要理解JVM(Java虚拟机)的基本概念,以及在性能调优中的关键作用。JVM是运行Java程序的核心组件,负责解释Java字节码,并将字节码转换成特定...
在优化方面,JVM配置参数起着决定性作用。例如,“-Xms”和“-Xmx”用于设置堆内存的初始大小和最大大小,合理设置可避免内存溢出;“-XX:NewRatio”控制年轻代与老年代的比例,影响垃圾收集频率;“-XX:...
JVM优化详解涉及的是Java虚拟机(Java Virtual Machine)的性能调优,这是Java应用性能提升的一个重要方面。JVM是运行Java字节码的抽象计算机,其性能优化对于提高Java应用程序的执行效率至关重要。下面我们来详细...
本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...
以下是对JVM部分关键配置参数的详细解析,这些参数能够帮助我们优化应用程序的执行效率,管理内存,以及进行性能调优。 #### 执行模式配置 1. **-Xmixed**: 混合模式执行(默认)。此参数指示JVM使用混合模式执行...
JVM参数配置是优化的关键,主要包括以下几个参数: -XX:MaxPermSize=256m:设置持久代(PermGen)的大小为256MB,持久代用于存储类的元数据。 -Xms和-Xmx:分别设置JVM启动时的初始堆大小和最大堆大小。为了提升性能...
综上所述,TongWeb5.0性能优化配置涉及到了JNDI配置、JVM参数调整、日志参数设置和线程数管理等多个方面。这些优化工作不仅需要对TongWeb的内部结构和工作机制有深刻的理解,还需要根据实际运行环境和业务需求进行...
3. JVM调优:JVM调优通常指对JVM进行配置,优化性能以应对特定的应用需求。常见的调优手段包括调整堆内存大小、设置垃圾回收器(GC)、调整线程堆栈大小、选择合适的垃圾回收策略和参数等。 4. JAVA并发:Java并发...
【JVM优化】Java的JVM优化涉及到许多关键知识点,主要目标是确保应用程序在生产环境中稳定、高效地运行。在本地开发环境中,由于资源限制不严,通常不需要过多关注JVM优化,但在生产环境中,面临如应用卡死、日志无...
文档"深入Java虚拟机(原书第2版).pdf"将为你提供更深入的理论基础,"jvm优化.docx"涵盖了具体的JVM调优技巧,而"tomcat性能调优.docx"则专注于Tomcat的优化实践。通过学习这些资料,你将能够更好地理解和优化你的...
【JVM参数配置详解】 Java Virtual Machine (JVM) 是Java程序的核心组成部分,它负责解析和执行Java程序的字节码。JVM的设计目标是提供跨平台的运行环境,通过在实际硬件上模拟一个虚拟的计算机系统,使得Java程序...
Java Virtual Machine (JVM) 是运行Java程序的核心环境,其性能优化很大程度上依赖于正确的JVM参数配置。合理配置JVM参数不仅可以显著提升应用程序的运行效率,还能避免因内存溢出等问题导致的系统崩溃。本文将深入...