- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WebSphere应用服务器 最佳实践分享 --内存溢出(OOM)分析
WWebSbSphhere应用服务器应用服务器
最佳实践分享最佳实践分享
-- 内存溢出(OOM)分析
演讲人姓名 吴丹
演讲人职务演讲人职务 高级信息工程师高级信息工程师
目录目录
•OOM的原因和最佳实践
••分析内存溢出错误的信息和工具分析内存溢出错误的信息和工具
•总结、QA
2
JavaJava 内存管理内存管理
• Java 内存分为两部分
• Java Heap
– 保存所有的Java对象实例
– 由垃圾回收器维护
Java Heap
– 可以通过”-Xmx”指定最大
值
NativeNative HeapHeap
– 保存编译的JIT代码、JNI代 Native Heap
码中通过Malloc 申请的内存、
加载的链接库等
–
不可达对象
• 内存的申请和释放
– 内存的分配:由程序申请 可达对象
– 内存的释放:由虚拟机((JVM)) 不可达对象不可达对象
的垃圾回收的垃圾回收器(GC) 自动完成自动完成
– 定期回收所有不可达的对象 Root对象
3
什么是内存溢出错误
((OutOfMemory,OOM ))
• 内存溢出是指应用程序申请的内存大于内存溢出是指应用程序申请的内存大于
Java虚拟机能提供的最大内存,导致应
用程序无法继续运行用程序无法继续运行。
•• 内存溢出错误产生的常见原因内存溢出错误产生的常见原因
–内存泄漏
–一次性申性申请内存过大存过大
–应用程序负载过大
4
从应用服务器管理的角度从应用服务器管理的角度
• 及时升级最新的WAS补丁、SDK补丁
– 例如例如:77.00.00-WSWS-WASWAS-WinX32WinX32-
FP0000007.pak
• 7.0.0-WS-WASSDK-WinX32-
FP0000007.pak
• WAS最大堆设置
• WAS默认的最大堆(Java Heap)大小为256M 。强烈
建议生产环境更改此配置建议生产环境更改此配置,,请在管理控制台的请在管理控制台的”应用程应用程
序服务器-[server ID]-进程定义-Java虚拟机”页签进
行修改,如右图所示:
•• 避免系统高负荷运转避免系统高负荷运转
– 充分的物理资源(内存等)
– GC之后保留充分空闲的空间
– 永远不要让回收之后的空闲空间过低永远不要让回收之后的空闲空间过低
5
从应用开发的角度从应用开发的角度
• 避免内存泄漏避免内存泄漏::无意识的对象保留无意识的对象保留
• 1、在程序中存在的一些“活的”对象
文档评论(0)