tomcat运行内存问题

今天系统上服务器时出现了一个问题,tomcat无法访问,在tomcat的日志文件里找到了如下提示:

Error waiting for multi-thread deployment of directories to completehostConfig.deployWar=Deploying web application archive {0}

在百度里找了一下说是tomcat内存溢出,需要调整tomcat运行环境的内存。我用的tomcat是7.0安装版,因此只有做以下调整即可:

调整红色框框里的数值,符合需求即可。

如果不是安装版的就比较麻烦了,我也没有试过,贴一下人家的方法上来:

问题解决一:

在eclipse中,window-->preferences-->Java-->Installed JREs

选中JRE 点击Edit

写入这句话:

-Xms800m -Xmx800m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

并设置当前使用的tomcat的运行jdk为当前刚刚设置过的jdk即可

问题解决二:

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

这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.

1.可以在windows 更改系统环境变量

加上JAVA_OPTS=-Xms64m -Xmx512m

2,如果用的tomcat,在windows下,可以在

C:\tomcat5.5.9\bin\catalina.bat  中加上:set JAVA_OPTS=-Xms64m -Xmx256m

位置在: rem Guess CATALINA_HOME if not defined  这行的下面加合适.

3.如果是linux系统

Linux  在{tomcat_home}/bin/catalina.sh的前面,加

set JAVA_OPTS=‘-Xms64 -Xmx512‘

java.lang.OutOfMemoryError: Java heap space

使用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等选项可进行设置。

例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar

如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。

Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。

以上办法在我电脑里全都没用。。。
删除工作空间其他项目,删除tomcat下其他项目,全都没用。新建项目只要不加载struts2项目 ,tomcat7能正常启动,如果添加struts2 ,必出现OutOfMemoryError。重新安装jdk,tomcat,myeclipse照样出现错误,只要删除导入的struts2包就能正常启动。怀疑问题出现在struts2的jar包上,myeclipse默认导入所以jar包,所以试了试只导入核心jar包,没想到成功了。
解决办法:
手工方式只导入以下核心jar包 
struts2-core-2.2.1.jar
xwork-core-2.2.1.jar
ognl-3.0.jar
freemarker-2.3.16.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
javassist-3.7.ga.jar

时间: 2024-10-30 14:03:43

tomcat运行内存问题的相关文章

Tomcat网页加载速度过慢的解决方法

可以vim conf/server.xml,在# OS specific support.  $var _must_ be set to either true or false.下添加: JAVA_OPTS="-server -Xms1024m -Xmx6144m -Xss1024K" 这段命令主要是用来设置Tomcat运行内存大小,Tomcat是内存大户,根据项目需求具体设定. vim server.xml <Connector port="8080" p

Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境

一.安装Tomcat 下载链接: http://mirrors.cnnic.cn/apache/tomcat/tomcat-6/v6.0.43/bin/apache-tomcat-6.0.43.zip http://apache.fayea.com/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.zip http://apache.fayea.com/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15

tomcat调整运行内存

1.双击server,编辑属性 2.点击open launch configuration 3.再弹出框中选择arguments 4.在参数末尾加空格再加: -Xms256M -Xmx1024M -XX:PermSize=256m -XX:MaxPermSize=1024m 解释: -Xms256M  jvm分配的初始堆内存 -Xmx1024M jvm分配的最大堆内存 -XX:PermSize=256m jvm分配的初始非堆内存 -XX:MaxPermSize=1024m  jvm分配的最大非堆

如何对应用服务性能问题诊断(Tomcat、Weblogic中间件)

在我们web项目中,我们常见的web应用服务器有Tomcat.Weblogic.WebSphere.它们是互联网应用系统的基础架构软件,也叫"中间件",负责处理动态在页面请求,并为应用提供了名字.事务.安全.消息.数据访问等,此外,它们还是提供应该构建的开发.部署.运行及管理功能. 当我们对项目做性能测试时,我们如何更好地监控它们,并诊断出性能问题呢?下以是我对Tomcat和Weblogic的一些性能监控分析方法: 1.  Tomcat性能监控分析 Tomcat是一个免费的开放源代码的

tomcat源码学习(2)&#160;&#160;关于apache&#160;digest

好久不写博文,罪过罪过.因为最近公司比较忙加上琐事有点多,所以隔了好久才来更新博文. apache digest本来是struts2框架中来加载xml文件并实例化对象的一个jar包,后来使用的越来越多. 我们都知道tomcat的conf文件夹下有一个server.xml配置文件,我们经常会其中的来进行配置以来运行一个java web项目,也经常修改中的port属性以来实现修改tomcat监听的端口.其实每个标签基本上都对应着一个对象,那tomcat是如何将这些对象实例化到java 虚拟机的运行内

记一次服务器Tomcat优化经历

博主原创,转载请注明. 公司需要一台测试服务器来做测试用,所以花了几天时间把服务全部部署好,在部署好war包之后,发现Tomcat访问超级慢. 1.进入Tomcat的bin目录下,运行 ./catalina.sh run命令,在前台打印运行信息,首先看其有没有报错.好,没有报错,进行下一步. 看打印信息输出的快慢,如果卡在某一句上,那么证明你的配置是有问题的. 如何解决? 1)修改你的jdk目录下/jre/lib/security目录下的java.security这个文件,将securerand

服务器端增加tomcat使用内存

对于很多的服务器来讲,尤其是用户个人的服务器,或者公司的测试服务器,里面经常会发布很多的web服务,这时候,tomcat的内存显得很重要,否则会经常发生服务器程序无法启动状况,内存溢出. 经过个人的实践,整理下增加tomcat添加内存的办法,以tomcat6六为准 Tomcat 6 on Ubuntu 修改/etc/default/tomcat6文件 找到JAVA_OPTS=”-Djava.awt.headless=true …”将前面的#去掉,改变相应的参数然后重启tomcat, 如JAVA_

Tomcat无法正常启动start.bat 一闪而过、只显示USING 故障排除

在云主机上配置tomcat的时候遇到的问题. 1. 开始的时候我将自己用的tomcat6绿色版打包放到了主机上,当我打开bin下面的时候startup.bat时,控制台一闪而过,查看log文件没有任何记录,打开CMD 找到tomcat的bin目录 >startup.bat ,显示需要JRE_HOME或者JAVA_HOME,原来没有安装JVM. 解决方法:下载一个JRE1.6,安装配置环境变量,再运行startup.bat. 2. 配置JRE后运行startup.bat时,显示5行Using XX

对Tomcat 8.0进行JVM层面的优化(基于Oracle JDK 8)

目录 1 Tomcat的内存调优 1.1 Tomcat的内存占用 1.2 内存配置相关参数 1.3 内存调优实践 1.4 验证配置效果 2 GC策略调优实践 Tomcat容器是运行在JVM上的, 其默认内存一般都很小(物理内存的1/64), 在实际生产环境中, 若不配置则会极大浪费服务器资源, 影像系统的性能. 可以通过调整JVM启动参数, 使得Tomcat拥有更好的性能. 对于JVM的优化主要有两个方面: 内存调优 和 垃圾收集策略调优. 1 Tomcat的内存调优 1.1 Tomcat的内存