0 0

WEB项目严重内存泄露-详见GC日志,谁有好的解决方法?20

一般三天就会outmemory,以上是一晚上我摘抄的部分GC输出,最下面六行是Full GC后的输出:
[GC [PSYoungGen: 131072K->10667K(152896K)] 137699K->17295K(1551040K), 0.0210980 secs] [Times: user=0.06 sys=0.01, real=0.02 secs]
[GC [PSYoungGen: 141739K->16988K(152896K)] 148367K->23616K(1551040K), 0.0354010 secs] [Times: user=0.11 sys=0.03, real=0.04 secs]
[GC [PSYoungGen: 148060K->21810K(152896K)] 154688K->36418K(1551040K), 0.0681030 secs] [Times: user=0.22 sys=0.05, real=0.07 secs]
[GC [PSYoungGen: 152882K->21810K(127808K)] 167490K->42286K(1525952K), 0.0592640 secs] [Times: user=0.20 sys=0.02, real=0.06 secs]
[GC [PSYoungGen: 127794K->13446K(140352K)] 148270K->33921K(1538496K), 0.0281450 secs] [Times: user=0.11 sys=0.00, real=0.03 secs]
[GC [PSYoungGen: 119430K->16778K(143808K)] 139905K->39585K(1541952K), 0.0391950 secs] [Times: user=0.15 sys=0.01, real=0.04 secs]
[GC [PSYoungGen: 128074K->17787K(142208K)] 150881K->46469K(1540352K), 0.0491400 secs] [Times: user=0.17 sys=0.02, real=0.05 secs]
[GC [PSYoungGen: 129083K->13490K(145664K)] 157765K->46121K(1543808K), 0.0307530 secs] [Times: user=0.11 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 129202K->13460K(144768K)] 161833K->54304K(1542912K), 0.0401360 secs] [Times: user=0.13 sys=0.03, real=0.04 secs]
[GC [PSYoungGen: 129172K->6302K(145792K)] 170016K->57453K(1543936K), 0.0368650 secs] [Times: user=0.12 sys=0.03, real=0.04 secs]
[GC [PSYoungGen: 123934K->7814K(146176K)] 175085K->63644K(1544320K), 0.0250320 secs] [Times: user=0.09 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 125446K->8405K(146816K)] 181276K->65300K(1544960K), 0.0205330 secs] [Times: user=0.07 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 126869K->6372K(146368K)] 183764K->70249K(1544512K), 0.0314980 secs] [Times: user=0.10 sys=0.02, real=0.03 secs]
[GC [PSYoungGen: 124836K->8133K(147776K)] 188713K->77378K(1545920K), 0.0281950 secs] [Times: user=0.09 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 128261K->7630K(147072K)] 197506K->83875K(1545216K), 0.0307970 secs] [Times: user=0.10 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 127743K->7322K(149120K)] 203988K->89233K(1547264K), 0.0265790 secs] [Times: user=0.09 sys=0.02, real=0.03 secs]
[GC [PSYoungGen: 130138K->4929K(148416K)] 212049K->87590K(1546560K), 0.0144890 secs] [Times: user=0.06 sys=0.00, real=0.01 secs]
[GC [PSYoungGen: 127745K->5553K(149952K)] 210406K->91748K(1548096K), 0.0209310 secs] [Times: user=0.08 sys=0.01, real=0.02 secs]
[GC [PSYoungGen: 130225K->5204K(149440K)] 216420K->95527K(1547584K), 0.0214290 secs] [Times: user=0.07 sys=0.01, real=0.02 secs]
[GC [PSYoungGen: 129876K->5859K(151360K)] 220199K->99950K(1549504K), 0.0208590 secs] [Times: user=0.07 sys=0.01, real=0.02 secs]
[GC [PSYoungGen: 133091K->2305K(150592K)] 227182K->97034K(1548736K), 0.0095770 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
[GC [PSYoungGen: 129537K->7041K(152704K)] 224266K->103285K(1550848K), 0.0183100 secs] [Times: user=0.07 sys=0.00, real=0.02 secs]
[GC [PSYoungGen: 136577K->6734K(151552K)] 232821K->109138K(1549696K), 0.0284170 secs] [Times: user=0.09 sys=0.01, real=0.02 secs]
[GC [PSYoungGen: 136265K->6577K(154752K)] 238669K->115029K(1552896K), 0.0282720 secs] [Times: user=0.09 sys=0.02, real=0.03 secs]
[GC [PSYoungGen: 140401K->7049K(153792K)] 248853K->120749K(1551936K), 0.0290040 secs] [Times: user=0.11 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 142626K->7433K(155776K)] 256920K->125278K(1553920K), 0.0246710 secs] [Times: user=0.09 sys=0.00, real=0.02 secs]
[GC [PSYoungGen: 146825K->15137K(155904K)] 270556K->143973K(1554048K), 0.0436090 secs] [Times: user=0.15 sys=0.01, real=0.05 secs]
[GC [PSYoungGen: 155873K->8575K(157120K)] 284709K->143784K(1555264K), 0.0340500 secs] [Times: user=0.11 sys=0.02, real=0.03 secs]
[GC [PSYoungGen: 147135K->7091K(156160K)] 282344K->142637K(1554304K), 0.0191960 secs] [Times: user=0.07 sys=0.00, real=0.02 secs]
[GC [PSYoungGen: 145647K->8573K(158528K)] 281192K->147610K(1556672K), 0.0262840 secs] [Times: user=0.09 sys=0.01, real=0.02 secs]
[GC [PSYoungGen: 150205K->6502K(157824K)] 289242K->150747K(1555968K), 0.0265810 secs] [Times: user=0.09 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 141220K->10772K(151872K)] 317058K->195973K(1550016K), 0.0575620 secs] [Times: user=0.20 sys=0.02, real=0.06 secs]
[GC [PSYoungGen: 138516K->7978K(150592K)] 323717K->194431K(1548736K), 0.0234840 secs] [Times: user=0.08 sys=0.00, real=0.03 secs]
[GC [PSYoungGen: 135722K->7705K(153216K)] 322175K->197321K(1551360K), 0.0258800 secs] [Times: user=0.09 sys=0.01, real=0.03 secs]
[GC [PSYoungGen: 138777K->5864K(152576K)] 328393K->202372K(1550720K), 0.0332100 secs] [Times: user=0.11 sys=0.02, real=0.04 secs]
[GC [PSYoungGen: 136936K->10546K(154496K)] 333444K->211912K(1552640K), 0.0351390 secs] [Times: user=0.12 sys=0.02, real=0.03 secs]
[GC [PSYoungGen: 143707K->4754K(153600K)] 345073K->206668K(1551744K), 0.0160970 secs] [Times: user=0.05 sys=0.00, real=0.02 secs]
[PSYoungGen: 6735K->0K(152896K)] [PSOldGen: 000000K->6627K(1398144K)] 6735K->6627K(1551040K) [PSPermGen: 17676K->17676K(262144K)], 0.1521720 secs] [Times: user=0.15 sys=0.01, real=0.16 secs]
[PSYoungGen: 4754K->0K(153600K)] [PSOldGen: 201914K->86024K(1398144K)] 206668K->86024K(1551744K) [PSPermGen: 33065K->33065K(262144K)], 0.5517640 secs] [Times: user=0.56 sys=0.00, real=0.55 secs]
[PSYoungGen: 5495K->0K(164096K)] [PSOldGen: 166076K->99609K(1398144K)] 171571K->99609K(1562240K) [PSPermGen: 33680K->33680K(262144K)], 0.5221250 secs] [Times: user=0.52 sys=0.00, real=0.52 secs]
[PSYoungGen: 2584K->0K(164736K)] [PSOldGen: 194684K->76213K(1398144K)] 197268K->76213K(1562880K) [PSPermGen: 34027K->33173K(262144K)], 0.6575180 secs] [Times: user=0.66 sys=0.00, real=0.66 secs]
[PSYoungGen: 928K->0K(161728K)] [PSOldGen: 144867K->100205K(1398144K)] 145795K->100205K(1559872K) [PSPermGen: 34264K->34264K(262144K)], 0.5328980 secs] [Times: user=0.53 sys=0.00, real=0.53 secs]
[PSYoungGen: 1656K->0K(161984K)] [PSOldGen: 100205K->100602K(1398144K)] 101861K->100602K(1560128K) [PSPermGen: 34317K->34317K(262144K)], 0.4965370 secs] [Times: user=0.50 sys=0.00, real=0.50 secs]

问题补充:
beneo 写道
引用
[PSYoungGen: 1656K->0K(161984K)] [PSOldGen: 100205K->100602K(1398144K)] 101861K->100602K(1560128K) [PSPermGen: 34317K->34317K(262144K)], 0.4965370 secs] [Times: user=0.50 sys=0.00, real=0.50 secs]


[PSOldGen: 100205K->100602K(1398144K)]
你得old代挂了

那你的异常肯定是OOM: java heap spac了

GC参数你之有指定了内存吧,如果是memory leak,多大都没有用。


最快的解决办法是,jmap dump 下来分析,你这个比较典型,很容易会找到。

还有去回想你的代码,IO有没有close等等

这玩意得花点时间

您好,这个结论完全正确,jmap dump下来分析是如何来做?第一次分析这个内存的问题,没有经验,对工具也不是很了解。

问题补充:
beneo 写道
jmap -dump:format=b,file=文件名 [pid]

哎呀呀
引用

嗯,楼上两位已经是正解了。要找到问题的根源光读这个GC log还不够,还是用上jmap来dump出堆的快照,然后用诸如MAT之类的工具来分析比较靠谱。
RednaxelaFX (架构师) 2011-01-07


RednaxelaFX 大现身,你就参照他的答案吧




非常感觉所有各位的回复,我先去学学jmap查看一下,

问题补充:[root@swbhost logs]# jmap -dump:format=b,file=jmap.log [11602]
Attaching to remote server [11602], please wait...
Error attaching to remote server: java.net.MalformedURLException: invalid URL String: //[11602]/SARemoteDebugger

还是不大会用啊。

问题补充:
beneo 写道
不要 []
jmap -dump:format=b,file=jmap.log 11602



这玩意好大啊,200多M 输出成文件,咋分析呢?

问题补充:
beneo 写道
不是吧

你要多运行一下,内存涨到1G的时候,再DUMP

拷贝到本地
用http://www.eclipse.org/mat/
运行




下载了分析工具,还是看不大懂。。

谁能帮我分析一下

Leaks
Overview

  Problem Suspect 1
The classloader/component "org.apache.catalina.loader.WebappClassLoader @ 0x2b894788" occupies 2,750,512 (16.72%) bytes. The memory is accumulated in classloader/component "org.apache.catalina.loader.WebappClassLoader @ 0x2b894788".

Keywords
org.apache.catalina.loader.WebappClassLoader @ 0x2b894788


Details »
  Problem Suspect 2
One instance of "org.apache.jasper.servlet.JspServlet" loaded by "org.apache.catalina.loader.StandardClassLoader @ 0x2b398c18" occupies 2,217,928 (13.48%) bytes. The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]" loaded by "<system class loader>".

Keywords
java.util.concurrent.ConcurrentHashMap$Segment[]
org.apache.catalina.loader.StandardClassLoader @ 0x2b398c18
org.apache.jasper.servlet.JspServlet


Details »
Hint 1
The problem suspects 1 and 2 may be related, because the reference chains to them have a common beginning.

Details »

2011年1月07日 09:04

8个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
One instance of "org.apache.jasper.servlet.JspServlet" loaded by "org.apache.catalina.loader.StandardClassLoader @ 0x2b398c18" occupies 2,217,928 (13.48%) bytes. The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]" loaded by "<system class loader>"



说的是JspServlet这个有嫌疑,然后你可能用到了java.util.concurrent.ConcurrentHashMap

这个map里面的东西很多,你看看是不是你存了都没释放掉

2011年1月07日 10:42
0 0

不是吧

你要多运行一下,内存涨到1G的时候,再DUMP

拷贝到本地
用http://www.eclipse.org/mat/
运行

2011年1月07日 10:18
0 0

不要 []
jmap -dump:format=b,file=jmap.log 11602

2011年1月07日 10:04
0 0

1。看看数据库的日志,有没有变态的sql(这个出问题的概率比较大)。
2。检查web application有没有时间比较长的请求(这个可以和1同时进行)。
3。检查web application数据库连接有没有问题。
4。检查web application的POI(Excel导入导出)调用有没有问题。
5。JVM参数、中间件参数是否合理。
PS:
gc日志是可以估算出什么时间开始出现问题的,虽然不是很准,但是对trouble shoot会起到一些作用。

2011年1月07日 10:04
0 0

jmap -dump:format=b,file=文件名 [pid]

哎呀呀

引用

嗯,楼上两位已经是正解了。要找到问题的根源光读这个GC log还不够,还是用上jmap来dump出堆的快照,然后用诸如MAT之类的工具来分析比较靠谱。
RednaxelaFX (架构师) 2011-01-07


RednaxelaFX 大现身,你就参照他的答案吧

2011年1月07日 09:57
0 0

嗯,楼上两位已经是正解了。要找到问题的根源光读这个GC log还不够,还是用上jmap来dump出堆的快照,然后用诸如MAT之类的工具来分析比较靠谱。

2011年1月07日 09:49
0 0

可以用ibm 的heap 分析工具,基本上可以快速确定大头所在。

2011年1月07日 09:33
0 0

引用
[PSYoungGen: 1656K->0K(161984K)] [PSOldGen: 100205K->100602K(1398144K)] 101861K->100602K(1560128K) [PSPermGen: 34317K->34317K(262144K)], 0.4965370 secs] [Times: user=0.50 sys=0.00, real=0.50 secs]


[PSOldGen: 100205K->100602K(1398144K)]
你得old代挂了

那你的异常肯定是OOM: java heap spac了

GC参数你之有指定了内存吧,如果是memory leak,多大都没有用。


最快的解决办法是,jmap dump 下来分析,你这个比较典型,很容易会找到。

还有去回想你的代码,IO有没有close等等

这玩意得花点时间

2011年1月07日 09:31

相关推荐

    自己写内存泄露检查工具V0.000_详见我的博客

    最后,虽然这个工具目前处于早期版本(V0.000),但它提供了一种自定义的方法来解决内存泄露问题,这对于没有内置内存管理机制或需要更细粒度控制的环境特别有用。随着工具的迭代和改进,它有望成为一种有效的内存...

    linux内存管理-FAQs.pdf

     每个内存块(多个page组成一个内存块)有自己的pageblock_flags, 定义在struct zone -&gt; unsigned long *pageblock_flags详情见2.4.3节的《辅助函数与变量》  在申请内存时, 需要使用gfp flags, 详情见2.4.5节的...

    AutoJs源码-抓取logcat日志

    本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!。3、安装过程详见具体资源,...

    AutoJs源码-UI显示日志

    本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!。3、安装过程详见具体资源,...

    ​web网页设计与制作期末作品期末考试项目

    适合大学期末期中考试及初学web网页设计者 本人大学web网页设计与制作课程总成绩94.5。本项目制作占期末65%,预估获得满分,最多扣了三五分。 压缩包内涵实现该项目所有素材及完整代码,可直接使用! (因上传资源不...

    PLSQL-Developer-总是断开数据库连接解决办法

    PLSQL-Developer-总是断开数据库连接解决办法 具体解决方案详见附件内容。

    .Net轻量级简单日志组件

    日志组件位于System.Database.dll中,项目引用命名空间(System.Logger)即可,日志组件提供五种级别的日志记录(DEBUG|INFO|WARN|ERROR|FATAL),最低DEBUG,最高FATAL,当配置的级别大于等于对应级别时,会自动记录...

    百度地图 功能模块完整版 开发指南

    d、图片图层对象初始化的方法有两种:1)根据指定经纬度坐标生成 2)根据指定区域生成; ------------------------------------------------------------------------------------- 八、 Demo名称:自定义绘制 ...

    globus web service 编程实例(详见描述)

    globus web service 编程实例 里面有三个文件,一个是描述文字,按照描述即可一步一步的运行例子。 一个是globus的程序,功能不全,只供运行例子用。...这是个很好的学习globus web service编程的例子。

    AutoJs源码-web拦截修改

    本资源购买前提醒:本源码都是实际autojs项目模板,安装好autojs直接运行即可打开。1、支持低版本autojs。2、资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!。3、安装过程详见具体资源,...

    免费开源的 Java Web 应用服务器 -- Apache Tomcat

    配置方法及常见问题处理: 1、启动内存参数的配置 2、修改Tomcat的JDK目录 3、如何增加虚拟目录 4、GET方式URL乱码问题解决 5、虚拟主机配置文件 6、新增版本中javax.servlet替换为jakarta.servlet的问题及解决办法...

    阿里云-日志服务API参考.pdf

    除此之外,LOG还提供了API(Application Programming Interface)方式写入、查询日志数据,管理自己的项目及日志库等。本API参考文档提供了日志服务API的详细说明,包括API列表、API调用方式、安全验证机制、Region...

    WebUI自动化测试框架Dagger.zip

    Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子开源出来,主要在于...

    jboss 7.1.1 Final 的jsp热部署解决方案

    按照作者所讲的方法操作了,问题奇迹般解决了,当时由于jboss核心包被重新编译过了,是否存在什么隐患还有待深入测试。 另在附件中提供了解决方案提供者重新编译过的包,我测试了是没问题。 现与大家分享。

    通用日志记录组件

    * 由于通用日志记录组件内部,会有几级的缓存调度处理,要结合全局消息中心进行配套启停使用详见Program.cs启动项,可根据配置信息,进行调度设置 * 日志写入接口自动实现线程数据同步,在不同的线程下写入日志...

    jquery-webui78-v1.5.209

    webui78组件库的目的是在对页面管理方案不做任何改变前提下,提供一套松散的前端UI组件,它提供了多样的数据表格、树形结构、图片按钮、表单验证、日历框、面板,此前端框架已经在多个生产系统中得以应用验证,具有...

    毕业设计-基于java web的微信小程序商城

    项目类型:Java web项目/JavaEE 项目架构:B/S架构 设计思想:MVC 开发语言:Java语言 后端技术:SSM、小程序等技术 运行环境:Windows7以上、JDK1.8以上版本 数据 库:MySQL5.5及以上 运行服务器:Tomcat7.0...

    基于SSM的java web项目框架

    使用apache-maven 3.5.0管理jar包,数据库为mysql数据库,该模型采用使用单个jsp,点击菜单时只在该jsp内轮番切换(详见globalObject.openTab方法), 与我上一个制作的SSH模型不同,struct采用定义多个jsp界面,实现...

    CollabNetSubversion-extra-1.6.9-1.i386.rpm 详见安装说明

    需要按照这个顺序安装,详见安装说明。 1.CollabNetSubversion-client-1.6.9-1.i386.rpm 2.CollabNetSubversion-server-1.6.9-1.i386.rpm 3.CollabNetSubversion-extra-1.6.9-1.i386.rpm 详见安装说明

Global site tag (gtag.js) - Google Analytics