博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出
阅读量:5831 次
发布时间:2019-06-18

本文共 1733 字,大约阅读时间需要 5 分钟。

上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解)

线上项目出现了org.apache.solr.servlet.SolrDispatchFilter - null:java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space

于是采用了在tomcat里面catalina.sh里面配置进行监控

JAVA_OPTS="-Xms5120m -Xmx5120m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=4 -XX:-UseGCOverheadLimit-XX:NewSize=3096m-XX:MaxDirectMemorySize=1024m-XX:+ExplicitGCInvokesConcurrent-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:+CMSParallelRemarkEnabled-XX:+UseCMSCompactAtFullCollection-XX:+UseFastAccessorMethods-XX:+UseCMSInitiatingOccupancyOnly-XX:+UseCompressedOops-XX:-ReduceInitialCardMarks-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/var/data/tomcat/java.hprof-XX:+PrintGCDetails-XX:+PrintGCDateStamps-verbose:gc -Xloggc:/var/data/tomcat/gc.log-Dcom.sun.management.jmxremote.port=1099-Djava.rmi.server.hostname=localhost-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false"

注意加红字体的路径要记得只需要指定目录就行gc.log java.hprof会自动创建。

采用了 MemoryAnalyzer 进行dump分析:

温馨提示:使用此工具的时java.hprof 如果文件大小高达3-9G需要到MemoryAnalyzer.ini -Xmx3072m 9个G需要设定5096m 否则分析一半卡死。

分析结果如下图

 

由最后第二张图可知大多数的溢出都是由TopFieldCollector类里面的一个MulitiComparatorsFile方法,其他类也有溢出是因为extends继承了TopFieldCollector 。但是考虑这个代码是由apache组织写的不可能有这么大bug没发现,所以考虑是存在系统var/data/下面的索引文件问题,初始化为5.8G大小索引,可以尝试初始化索引。

  我的情况是3个tomcat1,tomcat2,tomcat3 然后每个tomcat下面webapps都有源代码那么3个tomcat都加载是否加载了3次索引导致内存撑爆。然后采用tomcat1,tomcat2,tomcat3共用/home/tomcat/webapps来进行。

另外tomcat server.xml里面会有FULL GC不知道据说是tomcat6的一个bug为了检测监听内存泄露 大家要稍微注意下

<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"gcDaemonProtection="false"/>

  以上纯属个人观点,如果错误还望大神指出,小弟技术菜鸟 思维一般。

 

转载地址:http://rsedx.baihongyu.com/

你可能感兴趣的文章
Linux 文件IO理解
查看>>
Ninject 2.x细说---2.绑定和作用域
查看>>
30个非常时尚的网页联系表单设计优秀示例
查看>>
使用membership(System.Web.Security)来进行角色与权限管理
查看>>
opticom 语音质量验证白皮书
查看>>
3D实时渲染中的BSP树和多边形剔除
查看>>
Frank Klemm's Dither and Noise Shaping Page: Dither and Noise Shaping In MPC/MP+
查看>>
网络抓包的部署和工具Wireshark【图书节选】
查看>>
Redis在Windows+linux平台下的安装配置
查看>>
Maven入门实战笔记-11节[6]
查看>>
Local declaration of 'content' hides instance variable
查看>>
ASP.NET中 HTML标签总结及使用
查看>>
Linux下日志系统的设计
查看>>
爬虫IP被禁的简单解决方法——切换UserAgent
查看>>
php生成word,并下载
查看>>
紫书 习题8-11 UVa 1615 (区间选点问题)
查看>>
asp.net mvc学习(Vs技巧与Httpcontext)
查看>>
float数据在内存中是怎么存储的
查看>>
互联网+升级到智能+ 开启万物智联新时代
查看>>
Linux文本编辑器之Nano
查看>>