`
xiaoZ5919
  • 浏览: 404756 次
  • 性别: Icon_minigender_1
  • 来自: 安平人@北京
博客专栏
Group-logo
Netty学习笔记
浏览量:73198
社区版块
存档分类
最新评论

解决tomcat outOfMemoryError

阅读更多

项目中要从其它系统的webservice接口中获取数据,由于那个系统是用.net实现的webservices,返回的是一个xml文档格式的字符串,这个字符串的大小最大有1.2m,在抓取的过程中经常莫名其妙的停下来,也没有异常,后跟断点调试后发现java.lang.OutOfMemoryError: Java heap space。在网上搜了一下得到如下结论:

http://www.zxbc.cn/html/20080505/33993.html

     使用Java程序从数据库中查询大量的数据时出现异常:
java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
解决办法:
tomcat_home/bin下catalina.bat(win)或catalina.sh(linux)执行代码前加上:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m 

 

后又在je的六合江山的博客上的http://webxyz.iteye.com/blog/282569

发现原来还有一个性能监视控制台。

按照其说明安装以后,没有调整堆的大小以前,分配的堆内存是6.2m,难怪出出现OutOfMemoryError

调整后则顺畅运行

分享到:
评论
5 楼 xiaoZ5919 2009-03-06  
谢谢二位的指点 看来发布到论坛上还是有帮助的!
4 楼 xiaoZ5919 2009-03-06  
gembler 写道

你加大了Xms/Xmx后有持续测试么说不定是程序原因导致的假设你在默认值下跑了一天,溢出了你调整后,测了一周,发现没问题。但是可能因为加大的设置,要到一周才出现溢出。所以还是观察gc的状况,以确定最终原因

没有持续测试 生产环境是websphere没有这样的问题!
谢谢提醒!
我判断出现这样的问题 是抓取到的字符串为1.16M,Tomcat初始分配的内存为6.2M导致的
3 楼 xiaoZ5919 2009-03-06  
sdh5724 写道

楼主告诉你个信息把$JAVA_HOME/bin 下的命令, 都学习一遍, 理解大部分参数, 你会发现自己进步了很多, JVM问题, 基本可以靠这些命令解决。

谢谢指点!
2 楼 sdh5724 2009-03-05  
楼主告诉你个信息
把$JAVA_HOME/bin 下的命令, 都学习一遍, 理解大部分参数, 你会发现自己进步了很多, JVM问题, 基本可以靠这些命令解决。
1 楼 gembler 2009-03-05  
你加大了Xms/Xmx后有持续测试么
说不定是程序原因导致的
假设你在默认值下跑了一天,溢出了
你调整后,测了一周,发现没问题。
但是可能因为加大的设置,要到一周才出现溢出。
所以还是观察gc的状况,以确定最终原因

相关推荐

    tomcat 出现 OutOfMemoryError 的解决方法

    ### Tomcat 出现 OutOfMemoryError 的解决方法 #### 一、问题概述 在部署应用至 Tomcat 服务器时,经常会遇到一个常见的错误:`java.lang.OutOfMemoryError: PermGen space`。该错误表明 Java 虚拟机 (JVM) 的永久...

    解决Eclipse Tomcat OutOfMemoryError:PermGen space的问题

    总的来说,遇到`OutOfMemoryError: PermGen space`问题时,首先要分析应用是否频繁加载大量类或使用大量库,然后通过增大 PermGen 区域的大小来解决。此外,升级到Java 8及以上版本也是一个有效的解决方案,因为这些...

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    Eclipse 中通过 Tomcat 运行 J2EE 项目 java.lang.OutOfMemoryError PermGen space 的解决方案 在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于...

    解决OutOfMemoryError: PermGen space

    ### 解决OutOfMemoryError: PermGen space 在Java应用程序运行过程中,可能会遇到“OutOfMemoryError: PermGen space”的错误提示。这种错误通常发生在永久代(PermGen space)内存不足的情况下,永久代主要用于...

    myeclipse 解决内存的问题

    ### MyEclipse解决内存问题详解 #### 一、引言 在使用MyEclipse开发工具的过程中,用户可能会遇到性能下降的问题,比如启动速度变慢、响应时间加长等。这些问题通常与MyEclipse所占用的内存资源有关。本文将详细...

    解决OutOfMemoryError内存溢出

    ### 解决OutOfMemoryError内存溢出 在Java开发过程中,我们经常会遇到`java.lang.OutOfMemoryError`(简称OOM)的问题。这个问题的发生主要是由于JVM内存不足或程序中存在内存泄漏所引起的。本文将深入探讨OOM产生...

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat

    java.lang.OutOfMemoryError: Java heap space 解决方法

    "Java.lang.OutOfMemoryError: Java heap space 解决...Java.lang.OutOfMemoryError: Java heap space 是一种常见的 Java 错误,解决该问题需要从多方面入手,包括调整 JVM 的堆大小、调整 Tomcat 的配置、优化程序等。

    java.lang.OutOfMemoryError: PermGen space解决方案

    java.lang.OutOfMemoryError: PermGen space 解决方案

    TOMCAT内存溢出之解决方法

    为了解决Tomcat内存溢出问题,主要是加大Tomcat可利用内存,并在程序当中加大内存使用。具体解决方法如下: 1. 加大Tomcat可利用内存: 在Tomcat的目录下,也就是在Tomcat41/bin/catalina.bat文件最前面加入set ...

    Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException)

    解决Tomcat内存溢出问题的关键在于优化JVM的内存配置。以下是几个关键步骤: 1. **调整JVM启动参数**:你可以通过设置JVM的启动参数 `-Xms` 和 `-Xmx` 来控制Java进程的初始堆大小和最大堆大小。例如,可以将它们...

    java.lang.OutOfMemoryError解决办法

    Java中的`java.lang.OutOfMemoryError`是一种常见的运行时错误,通常表示应用程序在尝试分配内存时遇到了问题。根据提供的信息,这个错误主要涉及到两个方面:`PermGen space`和`Java heap`,并且与Tomcat服务器相关...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    ### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...

    ssh Tomcat自动部署无需手动重启服务器设置

    本文主要介绍了使用ssh实现Tomcat自动部署的方法,以及解决OutOfMemoryError PermGen space系统错误的方法。 一、配置Tomcat server.xml文件 在Tomcat的conf文件夹下找到server.xml文件,并添加以下代码:虚拟目录...

    TOMCAT内存大小调整

    TOMCAT内存大小调整是指在使用Java程序从数据库中查询大量数据或应用服务器(如Tomcat、JBoss、WebLogic)加载jar包时,出现java.lang.OutOfMemoryError异常的解决方法。这种异常主要是由于应用服务器的内存不足引起...

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    以上措施可以有效解决或缓解Java应用程序因堆空间不足导致的`OutOfMemoryError`。然而,优化过程需要结合具体应用的负载情况和资源需求来进行,确保在满足应用性能需求的同时,避免不必要的内存浪费。

    Tomcat给我的java.lang.OutOfMemoryError: PermGen

    本文将针对两种常见的Java内存溢出错误——`java.lang.OutOfMemoryError: PermGen space`和`java.lang.OutOfMemoryError: Java heap space`进行详细的分析和解决方案的探讨。 首先,我们来看`java.lang....

Global site tag (gtag.js) - Google Analytics