- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JVM调优实战.doc
JVM调优实战
付增斌
日期:2009-05-21
文档修订记录
版本 日期 撰写人 审核人 批准人 变更摘要 修订位置
目录
1 理论篇 1
1.1 多功能养鱼塘-JVM内存 1
1.2 池塘中的鱼-程序中的对象 2
1.3 养殖区域划分-JVM中的代 2
1.4 主人定期捕鱼-JVM垃圾回收 4
1.5 不同的捕鱼方式-垃圾回收器 5
1.6 捕鱼工具选择-JVM参数 7
2 实战篇 16
2.1 测试目的 16
2.2 测试环境准备 16
2.3 录制测试脚本 17
2.4 定义测试场景 17
2.5 执行初步性能测试 17
2.6 选择调优方案 18
2.7 调优后JVM监控图 21
2.8 测试结果分析 24
3 性能问题举例 25
3.1 性能症状 25
3.2 监控结果 25
3.3 原因分析 28
3.4 该系统的JVM设置 29
4 后记 29
5 附:舍得网的典型配置 30
理论篇
多功能养鱼塘-JVM内存
大鱼塘O(可分配内存): JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。
小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。JVM为优化或内部处理所分配的内存。它存储每一个类的结构,如一个运行时的常量池、字段和方法数据、方法的代码和构造函数。这个方法区是逻辑上堆的一部分,但依赖于实现,一个JVM可以不去回收或者压缩它。像堆一样,方法区可以固定大小的,也可以是大小可变的。方法区不是必须是连续的,它们可以是不连续的。除方法区之外,JVM总是从非堆中分配用于优化和内部处理所需的内存。例如,JIT编译器为高性能的JVM代码转换存储成本地代码而分配的内存。
整个池塘结构图如下:
查看大池塘O大小的方法为:
在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息,示例如下:
java -Xmx3072M -version。
当一个URL被访问时,内存申请过程如下:
A. JVM会试图为相关Java对象在Eden中初始化一块内存区域
B. 当Eden空间足够时,内存申请结束。否则到下一步
C. JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收), 释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区
D. Survivor区被用来作为Eden及OLD的中间交换区域,当OLD区空间足够时Survivor区的对象会被移到Old区,否则会被保留在Survivor区
E. 当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级)
F. 完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory错误”
短中期鱼苗养殖区-年青代(Young Generation)
年青代由一个Eden Space和两个Survivor Spaces组成,虚拟机初始时分配所有的对象到Eden Space,许多对象也是在这里死去。当它执行一个“minor GC”的时候,虚拟机将从Eden Space中移动一些残余的对象到其中的一个Survivor Spaces中。青年代就好像养鱼塘中的“中短期养殖区”一样,主人把鱼先投放到“短期养殖区”喂养,隔一段时间就开始下网捞出已经长成的那些鱼拿到集市去卖,这个过程就是从“Eden Space”中执行垃圾回收的过程。主人接着把捕捞之后剩下的“漏网之鱼”赶到“中期养殖区”继续喂养。这个“中期养殖区”就是“Survivor Spaces”,当然鱼在“中期养殖区”喂养一段时间后也要捞出那些长成的鱼去卖,这就是对“Survivor Spaces” 执行垃圾回收的过程。
Ps Eden Space: 这个内存池在对象初始化时被分配;
Ps Survivor Space: 这个内存池中包含着Eden Space 经过GC之后幸存下来的对象;
年轻代设置策略:对于响应时间优先的应用尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)。在此种情况下,年
您可能关注的文档
- JGJ 130-2011建筑施工扣件式钢管脚手架安全技术.doc
- JGJ130-2001建筑施工扣件式钢管脚手架安全技术规范条文说明.doc
- JGJ18-2003钢筋焊接及验收规程强制性条文.doc
- JGJ52-2006_普通溷凝土用砂、石质量及检验方法标准.doc
- JN4350D型焦炉调火.doc
- JOY-采煤机日常检修标准.xls
- JS500双卧轴强制式溷凝土搅拌机性能特点解析.doc
- JSJD-002轻钢龙骨纸面石膏板吊顶.doc
- JSP+JDBC班级留言板.doc
- JS系列一体化净水器.doc
- 鲁科版四上 Unit 2-Lesson2 She likes dancing课件PPT.pptx
- 鲁科版四上 Unit 1-Lesson3We sing here课件PPT.pptx
- 鲁科版四上 Unit 1-Lesson4 Again please课件PPT.pptx
- 鲁科版四上 Unit 3-Lesson2 I can dance on Friday课件PPT.pptx
- 鲁科版四上 Unit 2-Lesson3 What's your hobby课件PPT.pptx
- 鲁科版四上 Unit 1-Lesson1 We have Chinese课件PPT.pptx
- 鲁科版四上 Unit 2-Lesson4 Again please课件PPT.pptx
- 鲁科版四上 Unit 3-Lesson1 What day is today课件PPT.pptx
- 鲁科版四上 Unit 3-Lesson4 Again, please课件PPT.pptx
- 鲁科版四上 Unit 1-Lesson2What's your favourite subject课件.pptx
文档评论(0)