




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebSphere内存溢出处理1. jvm大小调整到768-1.5g,不要超出1536(MB)。对于32位JDK如果初始值超过2048(即2GB的JVM堆大小),将导致JVM初始化失败,websphere服务器无法启动。经验:如果使用超过1.5GB的JVM大小,就有可能出现古怪的内存分配失败问题。(websphere6.1使用IBM JDK 5.0,针对大对象的内存分配做了处理。)注意:调整JVM堆大小是最后应该考虑的手段,因为增大JVM同时也会增加垃圾回收的系统暂停时间。2. IBM JDK 5.0有4种垃圾回收机制可针对不同问题使用。命令:-Xgcpolicy:l Optthruput 默认的回收策略,不使用并发标记。如果用户没有因为内存回收时系统暂停时间过长问题,可以保持这个默认的参数。l Optavgpause 如果内存回收时导致系统暂停时间过长,建议使用这个策略。它可以缩短系统内存回收时的被暂停时间。l Gencon 是一种将并发标记和传统的垃圾回收机制综合使用的策略,用于将内存回收时的暂停时间最小化。l Subpool 不使用并发标记,但是,使用一种改进的内存分配算法用来获得更好的性能。后两种在电子商务应用中可提升30%60%的吞吐量。3. 打开垃圾回收详细信息功能。可以在控制台中设置,设置后需要重新启动websphere才能生效。开启这个功能后会生成进程日志(vnative_stdout.log或者vnative_stderr.log)包含垃圾处理过程的信息。这项功能默认是不启用的。可以使用相应的工具分析这些文件来分析垃圾回收的情况。勾选这项重启,就可以了。垃圾回收分析工具PMAT(ga)支持多种JDK版本的分析。启动java -Duser.language=cn -Duser.country=CN -jar ga29.jar不同的系统产生的日志采用不同参数,默认的是IBM的。点击导入vnative_stderr.log文件。(used(after)就是GC完成后占用内存大小的变化曲线)AF(Allocation Failure)内存分配失败内存泄露(Memory Leak)由于应用程序的非正常的申请越来越多的内存对象导致最终所有的内存空间被用完。内存碎片(Memory Fragmentation)即虽然所有的空闲的内存空间的总和大于所需申请的内存,但是,由于这些内存不是连续的(由于某些内存无法移动)而无法分配。内存碎片问题多数是由于固定对象和大对象问题引起的。分析方向:(两个图表 两次分配失败的间隔时间(Time since last AF)和GC完成时间(Complete time) 如果GC的频率很高(不论GC的完成时间是否正常),则很可能是真正的内存碎片问题。可以尝试调大JVM堆大小。 GC的每次执行时间应该小于10S。如果大于这个值说明垃圾回收器要花很长一段时间去清理大空间堆里的对象。这一般说明JVM堆的最大值过大,应该调小。 “GC的周期和分布”可以用来分析GC的开销是否过大;“GC后的空闲内存空间”可以用来发现内存泄露;“GC前的空闲内存空间”和“引起AF请求的大小”可以发现碎片过多和大对象问题,等等。 碎片问题(AF发生前的总空闲内存大小和导致AF的内存请求大小图表)正常情况下,AF发生前的总空闲内存大小应该比较小,或至少小于导致AF的内存请求大小。正常情况下,这个曲线应该贴近水平坐标轴,即AF发生前剩余空间应该接近零。反之,就很可能出现了内存碎片问题。 内存碎片问题解决(大部分是由于固定对象问题(pinned object)和大对象问题),固定对象问题可以通过设置“-Xk”和“-Xp”通用JVM参数来解决。在通用JVM参数中设置参数“-verbosegc Dibm.dg.trc.print=st_verify”,重新启动websphere就可以在日志中看到相应的“pinned=nnnn”等信息。序号参数含义单位1Since从上次AF到现在的时间millisecond2Freed这次GC释放的空间byte3Needed/Requested这次AF的请求空间byte4Free这次GC后总的空闲空间byte5TotalGC后的Java 堆大小byte6Completed完成AF的时间millisecond7GC Completed or GC完成GC消耗的时间millisecond8Overhead完成AF的时间%9Mark标记状态消耗的时间millisecond10Sweep打扫状态消耗的时间millisecond11Compact压缩耗时millisecond12Exhausted是否没有足够的空间分配使失败4. 两种情况会导致java.lang.OutOfMemoryError exceptionl The Java Virtual Machine (JVM) might run out of contiguous Java heap space to allocate a Java object.l The JVM might not be able to allocate native memory.5. 分析系统的堆镜像(heapdump)文件系统有可能自动产生,但是建议在系统运行过程中手工产生heapdump文件。下面介绍两种手工产生heapdump文件的方法。对于IBM JDK,可以使用IBM HeapDump,这是IBM自带的工具。为了使用这个工具,需要在websphere管理控制台中添加JVM的如下定制属性:IBM_HEAPDUMP=TRUEIBM_HEAP_DUMP=TRUEIBM_HEAPDUMPDIR=IBM_HEAPDUMP_OUTOFMEMORY=TRUEIBM_JAVADUMP_OUTOFMEMORY=TRUEIBM_JAVA_HEAPDUMP_TEXT=TRUE如果没有设置IBM_HEAPDUMPDIR,默认的输出路径就是应用服务器的根目录。保存修改后重新启动应用服务器。在unix平台需要获取应用服务器进程的进程PID,Unix下需要获得heapdump文件的时候,在命令行输入“kill -3 ”命令。该命令会在指定的目录下产生“heapdump”和“javacore”文件。一般来说需要产生多次heapdump文件来对比分析。Windows下,没有kill命令,需要通过webshpere应用服务器的命令行控制台进行。如下例:profilesserver1binwsadmin.batwsadminset jvm $AdminControl completeObjectName type=JVM,process=server1,*wsadmin$AdminCont
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届广西河池市普通高中毕业班高三下学期第二次模拟测试英语试题(解析版)
- 2025年江西农业大学招聘思政课专职教师招聘考试笔试试题(含答案)
- 浙江省2023-2024学年高二下学期6月学业水平第二次适应性联考数学试题(含答案)
- 孟德尔遗传定律(基因分离定律和基因自由组合定律)测试题带答案
- 校外车辆进校管理制度
- 档案安全应急管理制度
- 检测公司员工管理制度
- 检验人员资格管理制度
- 测量勘察公司管理制度
- 检验门诊仪器管理制度
- 《蛇咬伤的急诊处理》课件
- 房屋建筑学试题库(含答案)
- 造纸研学活动方案
- 英语研究报告范文
- 乳制品行业的跨界合作与创新
- 人工智能概论课件完整版
- 比较文学课件:流传学
- 2025年高考地理一轮复习备考策略
- 电脑租合同模板
- 税收筹划:理论、实务与案例(第4版)+蔡昌+课后习题及答案汇 第1-12章 税收筹划的基本理论 - 跨国经营的税收筹划
- 2024年中国南水北调集团水网智慧科技限公司秋季公开招聘高频难、易错点500题模拟试题附带答案详解
评论
0/150
提交评论