websphere内存溢出处理常用方法带截图
更新时间:2024-05-07 04:21:01 阅读量: 综合文库 文档下载
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:
? Optthruput 默认的回收策略,不使用并发标记。如果用户没有因为内存
回收时系统暂停时间过长问题,可以保持这个默认的参数。
? Optavgpause 如果内存回收时导致系统暂停时间过长,建议使用这个策
略。它可以缩短系统内存回收时的被暂停时间。
? Gencon 是一种将并发标记和传统的垃圾回收机制综合使用的策略,用于
将内存回收时的暂停时间最小化。
? 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”等信息。 序号 1 2 3 4 5 6 7 8 9 10 11 12
4. 两种情况会导致java.lang.OutOfMemoryError exception
? The Java? Virtual Machine (JVM) might run out of contiguous Java
heap space to allocate a Java object.
? The JVM might not be able to allocate native memory. 5. 分析系统的堆镜像(heapdump)文件
系统有可能自动产生,但是建议在系统运行过程中手工产生heapdump文件。下面介绍两种手工产生heapdump文件的方法。
对于IBM JDK,可以使用IBM HeapDump,这是IBM自带的工具。为了使用这
Since 参数 含义 从上次AF到现在的时间 单位 millisecond Freed 这次GC释放的空间 byte Needed/Requested Free Total Completed 这次AF的请求空间 这次GC后总的空闲空间 GC后的Java 堆大小 完成AF的时间 byte byte byte millisecond millisecond % millisecond millisecond millisecond GC Completed or GC 完成GC消耗的时间 Overhead Mark Sweep Compact Exhausted 完成AF的时间% 标记状态消耗的时间 打扫状态消耗的时间 压缩耗时 是否没有足够的空间分配使失败 个工具,需要在websphere管理控制台中添加JVM的如下定制属性: IBM_HEAPDUMP=TRUE IBM_HEAP_DUMP=TRUE
IBM_HEAPDUMPDIR=
如果没有设置IBM_HEAPDUMPDIR,默认的输出路径就是应用服务器的根目录。保存修改后重新启动应用服务器。在unix平台需要获取应用服务器进程的进程PID,Unix下需要获得heapdump文件的时候,在命令行输入“kill -3
使用命令行:java –Xmx1300m -jar ha26.jar
正在阅读:
LS-DYNA第七章:材料模型04-28
毛概样卷一及答案01-27
宝坻区四校联考高一数学试卷参考答案05-22
火龙果软件-使用 - Equinox开发OSGi应用程序10-28
饮食与健康206-26
驾车秘籍A05-26
新星中学学籍管理制度(1)05-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 溢出
- 截图
- websphere
- 内存
- 常用
- 处理
- 方法
- 2018幼儿园教育教学工作计划(一)
- 2018尔雅科学通史章节测验满分答案
- 中药微丸的制备工艺研究
- 2018中国移动广东江门分公司暑期实习生招聘公告
- 网络庭审直播利弊分析
- 2010年修订版全文中国高血压防治指南第三版
- 安徽工业大学认知实习报告
- C语言基础练习题1,2,3
- 北师大版六年级数学下册第二单元正比例和反比例教案
- 长白山火山地质构造的解析本科毕业论文
- 2013-四川省特种作业-建筑电工-考试题库
- 某大型集团公司财务管理系统项目投标书
- 亚洲稀土资源分布状况调研报告
- 会计理论复习题及答案
- 高中政治因果关系型选择题的分析
- 工程合同管理课后题答案
- Windows Server 2008系统管理ch6-习题参考答案
- 奥贝儿氧化沟设计计算书 (2)
- 驾驶专业评估规范-航次计划
- 化学平衡(等效平衡)高考和习题(1)