版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA问题觉察:在我们运行的一个工程上线运营后觉察运行两天左右就会报内存溢出,只有重启tomcatjava.lang.OutOfMemoryError:GCoverheadlimitexceededjava.lang.OutOfMemoryError:Javaheapspace缘由分析:jvm则会产生内存溢出,也就是“java.lang.outofmemoryerror”。假设jvm度,并且有无限大的内存,那jvm仅是由于我们的工程所需内存超过了jvm设置内存值导致内存溢出,那么我们可以通jvmjavajvm设置:-Xms-Xmx-Xmn-Xss-Xms:JVM-XmxJVMJVM-Xmn:设置年轻代大小,整个堆大小=年轻代大小+年老代大小+长期代大小.长期代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun3/8.-Xss:设置每个线程的堆栈大小.在一样物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成。1Gjava致内存溢出。1of9内存泄露的根本原理:voidfunction{Int[]vec=newint[5];}C++newdeletevoidfunction{Int[]vec=newint[5];},vecC++语言中,这样的对象永久也得不到释放,称这种现象为内存泄漏。v.add(o);o=null;}//ObjectvJava(GarbageCollection,GC)自动治理内存的回收,程序ObjectVectorVectorv.add(o);o=null;}//ObjectvVectorv=newVector(10);for(inti=1;i<100;i++){Objecto=newObject;GC一点是导致内存泄漏最重要的缘由。解决过程:对代码进展走查和分析,找出内存泄漏发生的位置;其次种,就是利用一些内存检查分析工具来分析,找出内存泄露的具体位置可以快速解决。2of9析命令以及工具的相关介绍。第一阶段jdk的GC可以在JAVA_OPTSjdkGC-verbose:gc-XX:+PrintGCDetails-XX:+HeapDumpOnOutOfMemoryError翻开输出日志,jdk会在每一次的垃圾回收时打印相关日志,参考格式如下:[GC[<collector>:<startingoccupancy1>-><endingoccupancy1>,<pauseoccupancy3>-><endingoccupancy3>,<pausetime3>secs]<collector>GC<startingoccupancy1>GC<endingoccupancy1>GC<pausetime1>生代局部收集时jvm<startingoccupancy3>JVMHeap在GC<endingoccupancy3>JVMHeapGC<pausetime3>GCjvm[GC[PSYoungGen:131072K->10667K(152896K)]137699K->17295K(1551040K),0.0210980secs][Times:user=0.06sys=0.01,real=0.02secs]留意短时间内关注GC的内存回收日志是没有什么作用的,重点需要关注的是Full级别的生代和年老代的内存状况。长时间未使用的安排内存得不到回收。[PSYoungGen: 6735K->0K(152896K)] [PSOldGen: 000000K->[PSYoungGen: 6735K->0K(152896K)] [PSOldGen: 000000K->6627K(1398144K)] 6735K->6627K(1551040K)[PSPermGen:17676K->17676K(262144K)],0.1521720secs][Times:user=0.15sys=0.01,real=0.16secs][PSYoungGen:4754K->0K(153600K)][PSOldGen:202314K->86024K(1398144K)]206668K->86024K(1551744K)[PSPermGen:33065K->33065K(262144K)],0.5517640secs][Times:user=0.56sys=0.00,real=0.55secs][PSYoungGen:5495K->0K(164096K)][PSOldGen:166076K->99609K(1398144K)]171571K->99609K(1562240K)[PSPermGen:33680K->33680K(262144K)],0.5221250secs][Times:user=0.52sys=0.00,real=0.52secs][PSYoungGen:2584K->0K(164736K)][PSOldGen:194684K->76213K(1398144K)]197268K->76213K(1562880K)3of9[PSPermGen:34027K->33173K(262144K)],0.6575180secs][Times:user=0.66sys=0.00,real=0.66secs][PSPermGen:34027K->33173K(262144K)],0.6575180secs][Times:user=0.66sys=0.00,real=0.66secs][PSYoungGen:928K->0K(161728K)][PSOldGen:144867K->100205K(1398144K)]145795K->100205K(1559872K)[PSPermGen:34264K->34264K(262144K)],0.5328980secs][Times:user=0.53sys=0.00,real=0.53secs][PSYoungGen:1656K->0K(161984K)][PSOldGen:100205K->100602K(1398144K)]101861K->100602K(1560128K)[PSPermGen:34317K->34317K(262144K)],0.4965370secs][Times:user=0.50sys=0.00,real=0.50secs]内存泄露问题。其次阶段jmapjmap命令可以获得运行中的jvm内存的大小等等命令格式jmap[options]pid-dump:[live,]format=b,file=<filename>-dump堆到文件,live指明是活着的对象,file指定文件名,pidjavaid上的的文件内容,手工分析查看实在是太过辛苦,所以也未能解决。第三阶段EclipseMemoryAnalyzer分析工具来分析AnalyzerJava计的对象进展分析,一旦堆转储被解析,可以在翻开他的一瞬间,马上得到保存大小的单一对象,提取记录具体的信息,查看为什么这些对象对象资料没有被释放掉。使用这些功能的报告,可以对这些对象进展跟踪,找到内存泄露嫌疑人,也可以得到系统的性能指数,帮助优化系统。下面就来介绍一下如何使用该工具进展分析。jvm于该工具进展分析第一步照旧是获得堆转储文件。具体命令如下:jmap-dump:format=b,file=jmap.hprof32460hprof,所hprof,有了这个文件我们就可以通过本工具来分析他。EclipseMemoryAnalyzer,eclipse4of9选择菜单File-OpenHeadDump然后选择我们生成的堆转储文件
5of9翻开后他提示是否自动生成泄露检测报告,我们选择后,点finish完成MAT6of91359.83%details7of913链接对象本身仅占用100K左右内存,因此不行能到达26M的内存占用量,所以根本可题。状况,后来通过一篇文档资料中介绍如下:在MySQLjdbc5.1.6Connection永久不掉用close,Statement,都调用了Statement的close没有把自己的资源释放干净StatementConnectio里有缓存closeconnettionStatement8of9connetionstatement代码如下:java.sql.Connectionconn=DriverManager.getConnection(strConnString);//下面这句很重要,具体作用就是让Statement每次close的时候通知Conn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省恩施州东城中学2026届初三下学期第三次统练语文试题含解析
- 智能家居产品永久质量保证承诺书7篇
- 2026年江苏省泰州市泰兴市黄桥教育联盟初三第一次中考适应性考试(一诊)英语试题试卷含解析
- 山东省青岛市黄岛十中学2026年初三中考调研测试(二)英语试题含解析
- 2026年湖南省株洲湘渌实验校初三下学期开学考语文试题含解析
- 特色民族工艺品质量承诺书4篇
- 项目成本控制模板标准化管理
- 公司治理质量保证承诺书(5篇)
- 企业信息资源管理与整合解决方案手册
- 按时交付物流服务保证承诺书范文9篇
- GB/T 20013.1-2025核医学仪器例行试验第1部分:γ辐射计数系统
- 2025年甘肃省高考数学真题(新课标ⅱ卷)(含答案解析)
- 五年(2021-2025)高考生物真题分类汇编专题专题08 生物与环境(解析版)(河北专用)
- 前鼻韵母unvn课件
- 2025年政治法制素养题库及答案
- 中山市招投标管理办法
- 医院一站式服务课件
- 板式支护、槽钢支护施工方法
- 浙江专升本政治试题及答案
- 2025年数据中心机房第三方验证测试方案-方案设计
- 2024学年外研版三起六年级英语下册M9单元整体教学设计
评论
0/150
提交评论