java理解和探查内存不足内存泄漏.ppt_第1页
java理解和探查内存不足内存泄漏.ppt_第2页
java理解和探查内存不足内存泄漏.ppt_第3页
java理解和探查内存不足内存泄漏.ppt_第4页
java理解和探查内存不足内存泄漏.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、了解内存不足/内存泄漏out of memory error/memoryleakanalyzeutilitiesdemonstrateii (AIX )进行探查,了解内存不足/内存泄漏进行探查,听完了本次的Webinar。 了解Java基本内存管理的基本概念了解内存不足/内存泄漏错误的原因和症状了解内存不足/内存泄漏错误的解决方法3, MENU,Java内存管理的基本概念内存不足和内存泄漏错误的原因和使用症状分析工具解决内存不足和内存泄漏错误内存不足和内存泄漏OutOfMemory分析实例,4,解决Java内存管理的基本概念, Java内存Java堆内存(heap) Java堆内存(heap

2、):jvm用于分配Java对象的内存,包括活动对象和不可用对象的堆大小通常在服务器启动时五, Java内存管理的基本概念,本地内存(nativememory):jvm用于内部操作的本地内存(非Java内存) JNI代码和第三方本地模块(例如,本地JDBC驱动程序也是本地内存的最大OS进程内存大小限制指定Java堆内存进程内存大小: 32位OS,理论最大值为2的32次方4G进程内存Java内存可执行加载文件和库OS保留内存Java内存管理的基本概念,gaber 由于Java运行时JVM执行GC,因此程序员无需显式释放对象。 一般情况下,可用内存降低到某个程度后,或者内存分配达到某个数量后自动启动

3、。以下简称OOM以下简称Memory Leak简称ML Heap简称“堆”、7、Java内存问题的两种表现形式。 Java内存问题的两种表示:内存不足错误内存泄漏错误内存不足错误明确表示没有可用内存可以为java.lang.OutOfMemoryError分配JVM或本地代码。 分配了内存的内存和对象几乎用完后,不释放内存的曲线可能是相对于Java堆和局部内存向上倾斜的曲线。 通常,最终状态会导致OOM错误,通常ML会导致OOM错误,8、Java内存问题的两个主要发生模块, Java内存问题的两个主要发生块: Java内存包括heap堆内存和permanent区域本地内存JVM进程内存以及Ja

4、va使用的第三方本地代码Java内存缺少Java堆内存heap 无法将新对象或内存块per类加载到内存中(Sun Hp JDK )本地内存不足,内存第三方本地代码有内存泄漏的错误(Oracle OCI驱动程序本地代码) Java内存管理的基本概念内存不足和内存泄漏错误的原因和使用症状分析工具预防内存不足和内存泄漏错误内存泄漏OutOfMemory/Memory Leak错误示例,10,内存不足和内存泄漏错误的典型原因物理内存不足物理内存有限,例如1G物理内存大,但应用多内存过多Swap区域的大小不足Weblogic Server的压力过大, 用户过多,数据量过多,分配应用例如统一修订报告Per

5、manent区域过小,用户代码内存无法释放http session大量的对象向内存分配了大量的数据的用户本身就是多线程记录用户代码内存泄漏问题没有分配了jdbc连接close的对象的close和释放Weblogic Server为heap不正确分配的内存过少会话超时时间过长的EJB pool和Cache的大小位置内存问题第三方Java应用程序也内存不足或泄露问题第三方本地代码的内存,例如,Oracle OCI驱动程序的其他第三方本地代码的内存泄露JVM自身的内存问题JIT技术ml :发生weblogicserrom时,需要消耗更多本地内存JVM本身的错误(JVM频繁进行GC,Java进程占用较

6、多的CPU )的响应速度慢的控制台内存监视器此消息显示在stdout或stderr中,可以看到在thread dump中,大部分时间所有线程都在wait中。 如果只有GC线程正在工作的许多线程请求内存线程,则可能会异常终止线程丢失)连续的Java堆OOM/ML错误有时会引起JVM进程终止服务,通常在文本Core文件、13、JVM终止时生成通常jvm异常结束时生成的文本Core文件除了OOM以外,jvm也因其他原因异常结束了与IBM JDK - javacore*.txt文件、14、小节评审、内存不足和内存泄漏错误的典型原因OOM错误相关的故障症状,在本节中Java内存管理的基本概念内存不足和内

7、存泄漏错误的原因和使用症状分析工具预防内存不足和内存泄漏错误解决内存泄漏OutOfMemory错误实例16、使用分析工具分析OOM问题Java Heap OOM常用内存分析工具heapanalyzerorheaprootsforibm JDK脱机分析,17, HeapAnalyzer/HeapRoots(1)、HeapAnalyzer/HeapRoots不影响用于ibmjdk的生产系统的ibmjdk内存镜像仅支持IBM JDK HeapRoots字符接口, HeapAnalyzer是HeapRoots的图形接口启动方式: Kill -3获取heapdump文件,启动HeapAnalyzer或H

8、eapRoots,加载heapdumm,heap analyzer/heap HeapDump是IBM JDK Heap内存的文本镜像,默认生成位置是Weblogic Server启动目录,通常是Domain目录中得不到HeapDump时。 禁止HeapDump的生成的生成开关可能是export IBM _ heap dump=trueexportibm _ heap _ dump=trueexportibm _ heap dump _ out of内存pDumpdir=注意:通常,Heapdump比较大,特别是在heap内存的设定大的情况下,为了再现问题而获得现场数据。 如果HeapDump

9、超过1G,可能无法打开,并且必须指定-Xmx残奥定参数,才能发生OOM错误并启动HeapAnalyzer。 19,HeapAnalyzer/HeapRoots(3),启动接口,20, heap analyzer heap analyzer/heap roots (5),内存按对象和类型显示,22,HeapAnalyzer/HeapRoots(6),找到怀疑泄漏的内存对象,23,小节评审, 内存分析工具Java内存管理的基本概念内存不足和内存泄漏错误的原因和症状诊断、定位和解决内存不足和内存泄漏错误预防内存不足和内存泄漏预防OutOfMemory错误事例、25、预防内存不足和内存泄漏预防系统管理

10、代码预防性内存不足和内存泄漏系统管理,系统管理足够的物理内存,设置适当的Swap区域大小最佳的HEAP内存设置最新的操作系统/最新的JDK/使用最新版本的WLS使用Weblogic Server验证JDK尽可能不使用第三方本地代码,或者使用Java备选方案根据应用程序设置适当的http会话超时时间根据应用程序设置适当的ession超时时间Cache, 设置27,以防止内存不足和内存泄漏代码创建,在代码创建Session中不放置大量对象而不过高速缓存的资源一定需要close ()的JDBC连接合理地从数据库中获取适量的数据XML分析大内存的需求纠正和28、小节回顾,预防内存不足和内存泄漏系统管理

11、代码编制,在本小节中,阐述了以下内容:29,MENU,Java内存管理的基本概念内存不足和内存泄漏错误的原因和症状诊断, 内存不足和内存泄漏错误的定位和解决内存不足和内存泄漏OutOfMemory错误实例,案例1、31,OutOfMemory错误实例(1)现象自动生成heapdump和javacore文件只能重新启动。 重启了一段时间之后又是这样了。32,内存出错实例(1)信息收集,GC日志JavaCore文件分析用于硬卷对卷的HeapAnalyser,33,内存出错实例(1) GC日志。 指的是什么意思?1 tisiginfooutofmemoryreceived1tidatetimedat

12、e 33602005/05/11at 1533605636013 tifilenamejavacorefilename :/bea我的域/javacore 696496.1115798173.txt1xhtimewedmay 1115336056360132005 xhsigrecvunexpectedsignal-1 received cession全功能版420-2004 06 26 ciuserarg-xms 1024 m2ciuserarg-xmx 1024 m2ciuserarg -版本0/bea/GC.log1stheapfreebytesofheapspac

13、efree 336045 b 8 1 stheapallocbytesofheapspaceallocated : 752 )2lkregmonheaplock (0x 30071788 ) 3360 ownerexecutethread 3360 for queue : WebLogic.socket.muxer (0x7ba进入计数23 lkwaiterqwaitingtoenter :3 lkwaiterexecutetet logic.kernel.non -阻塞(阻塞)3lkwaiterlistenthread.default (0x7d9d 78 a0)3lkwaiterweblogic.health.corehealthmonith 3 lkwaiter3lkwaiterexecutethread :2 for queue : WebLogic.admin.RMI (0x7BD 332 a0) 3 lkwaiterexecutethread : for queue : WebLogic.admin.RMI (0x7BD 298 a0)3lkwaiterexecutethread 33602 for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论