维护一个老系统,发现有java.lang.OutOfMemoryError: Java heap space的情况,内存溢出,以下是大致的解决过程:
1.安装JProfiler,并配置成监控本地的tomcat
2.修改catalina.bat,添加参数: set JAVA_OPTS= -Xms768m -Xmx1024m -verbose:gc -Xloggc:../logs/gclog.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError %JAVA_OPTS%
3.使用JProfiler在Tomcat的bin目录下创建的启动脚本startup_jprofiler.bat重启tomcat
4.运行JProfiler观察内存状况,未发现问题
5.第二天突然发现Tomcat再次出现内存溢出,Tomcat的bin目录下自动生成了java_pid107932.hprof文件,将此文件下载到本地,以便分析。
6.下载Memory Analyzer工具,然后打开该hprof文件进行分析,发现是SmartUpload的问题:com.jspsmart.upload.Files占用内存1G多。
7.用Apache的上传组件替换掉smartupload,目前没有发现问题
附上Memory Analyzer分析的图片:
Leak Suspects显示,有一个东西占了1007.9M的内存:
点击底部的Details链接,发现是com.jspsmart.upload.Files占用内存最多:
- 大小: 72.4 KB
- 大小: 138.2 KB
分享到:
相关推荐
本文将详细介绍Tomcat内存溢出之解决方法,包括问题分析、解决方法和结论。 问题分析: Tomcat内存溢出是由于JVM的虚拟内存默认为128M,当超过这个值时就把先前占用的内存释放,而导致出现HTTP500的错误。当用户...
本篇将详细介绍如何解决Tomcat内存溢出的问题,以及如何进行相应的配置优化。 首先,我们需要理解什么是内存溢出。当一个程序在运行过程中,分配给它的内存不足以存储所有数据时,就会发生内存溢出。在Java环境中,...
### MyEclipse-Tomcat JDK 内存溢出问题及解决方案 #### 一、问题概述 在使用MyEclipse进行Java Web开发时,经常会遇到Tomcat服务器启动后出现JVM内存溢出的问题。这种情况通常表现为应用程序运行过程中突然崩溃,...
### Eclipse Tomcat 启动时出现内存溢出问题解析及解决方法 #### 一、问题背景与概述 在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这...
JVM 内存溢出问题解析 JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。这种情况可能是由于数据量过大、死循环、静态变量和静态方法过多、递归、无法确定是否被引用的对象等原因引起的。同时...
标题中的“关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论”涉及了两个关键的IT概念:Tomcat服务器的字符编码问题和Java虚拟机(JVM)内存管理的问题。让我们逐一深入探讨这两个主题。 首先,我们来...
4. **使用工具辅助诊断**:可以利用JVisualVM等工具来监控和分析Java应用程序的内存使用情况,及时发现并解决问题。 综上所述,通过合理配置JVM参数,可以在很大程度上避免Tomcat服务器上的Java应用出现内存溢出的...
### Eclipse + Tomcat 内存溢出参数设置详解 在Java开发过程中,特别是在使用Eclipse作为集成开发环境(IDE)并结合...通过以上步骤,可以有效地解决Eclipse和Tomcat中的内存溢出问题,提高系统的稳定性和响应速度。
内存溢出问题在Java开发中是一个常见的问题,尤其是在使用集成开发环境如MyEclipse时,由于资源消耗较大,可能会频繁出现。...通过监控和调整这些参数,可以有效地避免内存溢出问题,提升应用的稳定性和性能。
本文将详细介绍如何利用 Eclipse Memory Analyzer (MAT) 工具来诊断并解决 Tomcat 服务器上的 Java 应用程序内存溢出问题。 #### 二、内存溢出的原因及处理思路 ##### 2.1 内存泄露 - **定义**:内存泄露是指不再...
在Java开发过程中,Tomcat作为常用的Java应用服务器,有时会遇到内存溢出(Out Of Memory,OOM)的问题,这可能导致应用程序崩溃或者性能急剧下降。内存溢出问题的排查和解决是一项重要的技能。本文将详细讲解如何...
标题中的“tomcat内存溢出问题.doc”表明讨论的主题是关于Tomcat服务器遇到的内存溢出(Out Of Memory,OOM)问题,特别是与Java的PermGen空间相关的内存溢出。描述提到,这个问题是因为Tomcat的初始内存设置过小,...
6. **升级或切换版本**:如果Jetty 8的内存溢出问题难以解决,可以考虑升级到更稳定或内存管理更优化的版本,如Jetty 9或更高版本,或者考虑使用其他Web服务器,如Tomcat。 7. **使用G1垃圾收集器**:G1(Garbage ...
因此,了解并掌握如何解决Tomcat内存溢出问题对于确保应用程序的稳定运行至关重要。 #### 二、Tomcat内存溢出的三种常见类型及其原因 根据文档内容,Tomcat内存溢出大致可以分为以下三种情况: 1. **...
### MyEclipse下Tomcat日志输出和内存溢出解决方法 #### 一、问题背景与概述 在使用MyEclipse进行开发时,经常会遇到Tomcat服务器启动后,在部署SSH(Struts+Spring+Hibernate)项目多次后出现崩溃的情况。这通常...
【Tomcat内存溢出解决办法】 Tomcat是Apache软件基金会的一个开源项目,作为一个流行的Java Servlet容器,它常用于部署和运行Java Web应用程序。内存溢出问题(Out of Memory Error,OOME)在高负载或长时间运行的...
然而,随着应用程序复杂性和负载的增加,Tomcat可能会遇到内存溢出问题,这可能导致服务中断,严重影响系统稳定性。内存溢出,也称为“内存泄漏”,通常发生在系统消耗的内存超过了其可用内存,导致程序无法正常运行...