- 浏览: 891051 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
tomcat是目前应用十分广泛的一个Java servlet container与web服务器,反正5年来我是从4.0.6一直用到5.5.9,期间也出现过几次崩溃抛出类似hs_err_pid31199.log的log,不过绝大部分时间是运行平稳的。但java.lang.OutOfMemoryError的异常相信真正用过tomcat的人都遇到过,抛开程序问题不谈(使用Borland的optimizeit可以查找,代码中可能有本应短期存在的obj,但是却被一个长生命期的ref引用着,因此gc无法回收这个obj。多半跟静态对象有关),这个异常和JVM默认划分的内存上限是128M有关,如果你的业务足够繁忙,128M是远远不过的,好在现在的内存几乎达到了白菜价(到今天大概1G是260元),一般的服务器都有2-4G的内存,所以你可以大方的给JVM分配上1G甚至更多,这样就可以避免内存溢出或大大增加异常的周期(1G都溢出,那你的项目真是不错的热门业务啊!)。
1、linux下简单,在bin里找到catalina.sh,vi一下,紧跟着注释的后面增加一句:
JAVA_OPTS='-Xms256m -Xmx256m'
256是个例子,你可以根据物理内存情况写成1024甚至2048,不过个人建议有1024足够足够用了。
:wq后,重启tomcat即可,ps ax后看到tomcat的进程会变成类似
/opt/jdk1.6.0/bin/java -Xms256m -Xmx256m -Djava.endorsed.dirs=/opt/tomcat/common/e
有红色那句就说明生效了。
2、在windows下,如果使用控制台的方式,也就是直接执行startup.bat方式启动,可以通过修改catalina.bat
set JAVA_OPTS=-Xms256m -Xmx512m
注意,linux下有单引号,win下不用,如果加上单引号,tomcat根本起不来。
3、如果windows下tomcat被作为一种服务安装了,修改jvm的可用内存会有些麻烦,不过咱这也可以完美解决。
在安裝tomcat時若有勾選"NT Service(NT/2000/XP only)"
則安裝完成後在安裝目錄的"bin"目錄裡會有一個tomcat.exe的檔案
先把tomcat的服務停掉
在命令列模式下(运行里输入CMD)
將目錄切換到tomcat的bin目錄
用下面的命令把服務移除
則安裝完成後在安裝目錄的"bin"目錄裡會有一個tomcat.exe的檔案
先把tomcat的服務停掉
在命令列模式下(运行里输入CMD)
將目錄切換到tomcat的bin目錄
用下面的命令把服務移除
tomcat -uninstall "Apache Tomcat 4.1"
接下來,写个批处理。
內容如下
內容如下
set SERVICENAME=Apache Tomcat 4.1
set CATALINA_HOME=E:\Tomcat 4.1.24
set CLASSPATH=D:\j2sdk1.4.1_01\lib
set JAVACLASSPATH=%CLASSPATH%
set JAVACLASSPATH=%JAVACLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar
set JAVACLASSPATH=%JAVACLASSPATH%;%CATALINA_HOME%\common\lib\servlet.jar
set JAVACLASSPATH=%JAVACLASSPATH%;%JAVA_HOME%\lib\tools.jar
tomcat.exe -install "%SERVICENAME%" "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path="%JAVACLASSPATH%" -Dcatalina.home="%CATALINA_HOME%" -Xms512m -Xmx768m -start org.apache.catalina.startup.Bootstrap -params start -stop org.apache.catalina.startup.Bootstrap -params stop -out "%CATALINA_HOME%\logs\stdout.log" -err "%CATALINA_HOME%\logs\stderr.log"
set CATALINA_HOME=E:\Tomcat 4.1.24
set CLASSPATH=D:\j2sdk1.4.1_01\lib
set JAVACLASSPATH=%CLASSPATH%
set JAVACLASSPATH=%JAVACLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar
set JAVACLASSPATH=%JAVACLASSPATH%;%CATALINA_HOME%\common\lib\servlet.jar
set JAVACLASSPATH=%JAVACLASSPATH%;%JAVA_HOME%\lib\tools.jar
tomcat.exe -install "%SERVICENAME%" "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path="%JAVACLASSPATH%" -Dcatalina.home="%CATALINA_HOME%" -Xms512m -Xmx768m -start org.apache.catalina.startup.Bootstrap -params start -stop org.apache.catalina.startup.Bootstrap -params stop -out "%CATALINA_HOME%\logs\stdout.log" -err "%CATALINA_HOME%\logs\stderr.log"
注意,从tomcat.exe -install开始的是最后一行!不要手工回车换行把这一行分成了好几段。保存后在命令行下执行这个bat文件,注意执行的时候将“服务”窗口关闭。
如果执行结果如下图,那么恭喜,一个可以使用大内存的tomcat服务诞生了。
如果启动新服务的时候遇到“服务无法启动,遇到一个内部问题”云云,很可能是JDK有问题,我遇到过一次,手工到“环境变量”中(我想装tomcat的起码都是老鸟了吧,你会找不到环境变量设置的位置?)在系统变量里增加JAVA_HOME,变量值写真实的jDK路径,然后重新卸载tomcat服务,重装tomcat服务,一般就没问题了,如果你遇到了二般,恭喜!可以留言给我,我帮着看看。
--------
参考过网上的一些资料,但绝对可以称为原创,转摘的请说明引自“随手贴”,感谢
发表评论
文章已被作者锁定,不允许评论。
-
JVM的内存优化
2012-06-21 12:37 1314自:http://hi.baidu.com/walte ... -
JVM最大分配内存
2012-06-21 12:27 1121分析了当前比较流行的几个不同公司不同版本JVM的最大内存,得出 ... -
查看jvm最大内存
2012-06-21 12:22 1492查看jvm最大内存 java -Xmx1500M -vers ... -
Tomcat内存设置 .
2012-06-15 23:03 1042Tomcat 内存配置 2009年08月11日 17:05 ... -
如何指定tomcat中session过期时间
2012-06-06 11:33 833如何指定tomcat中session过期时间 1. 在se ... -
负载均衡环境中和如何设置Expires和Etag .
2012-06-12 09:56 1538在负载均衡环境中(LVS, LoadBalance)为了减少浏 ... -
轻松实现Apache,Tomcat集群和负载均衡
2012-06-05 23:24 1054作者:罗代均 ldj_work#126.com,转载请保持完整 ... -
tomcat最多能支持多少用户
2012-06-05 23:20 2760Tomcat里用线城池来控制并发用户的个数。 初始化为150个 ... -
tomcat开启Gzip
2011-04-08 23:52 1267现在来说一下如何在TOM猫中一步到位(要求TOM猫5.0以后版 ... -
tomcat的虚拟站点问题
2011-03-02 14:50 1374<Host name="localhost&q ... -
Tomcat里 appBase和docBase的区别
2011-03-02 14:47 1265<host appBase="d:/aaa&q ... -
Apache+Tomcat负载均衡和集群的尝试
2011-03-02 14:44 11351 各软件版本 Apache 2.2.4 因为jd_mod 用 ... -
Tomcat源码分析之JNDI
2011-03-02 14:43 1507在tomcat服务器中,我们可以通过配置文件%CATALINA ... -
tomcat和apache整合
2011-03-02 14:42 996为什么要整合了.其实很简单.原因就是: tomcat在静态 ... -
将Tomcat解压缩版变成服务形式运行,并修改Tomcat的启动内存参数
2011-03-02 14:41 1330许多朋友为了调试方便,下载使用的Tomcat是.zip的解压缩 ... -
Tomcat5.5.x配置整理 - 在重新启动Tomcat的webapp的时候,禁止把session写入文件
2011-03-02 14:39 989修改conf/web.xml 取消注释: <!--- ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-03-02 14:38 8411、PermGen space的全称是Permanent Ge ... -
Tomcat 同时侦听多端口,多应用
2011-03-02 14:37 1075当你使用Tomcat作为Web Server的时候,是不是会想 ... -
Tomcat5.5.x配置整理 - 配置日志
2011-03-02 14:33 1021在D:\jakarta-tomcat-5.5.8\comm ... -
Tomcat5.5.x配置整理 - 增强SessiionID的生成算法和长度
2011-03-02 14:32 931查看复制到剪切板打印 <Manage ...
相关推荐
本文将详细介绍Tomcat内存溢出之解决方法,包括问题分析、解决方法和结论。 问题分析: Tomcat内存溢出是由于JVM的虚拟内存默认为128M,当超过这个值时就把先前占用的内存释放,而导致出现HTTP500的错误。当用户...
本篇将详细介绍如何解决Tomcat内存溢出的问题,以及如何进行相应的配置优化。 首先,我们需要理解什么是内存溢出。当一个程序在运行过程中,分配给它的内存不足以存储所有数据时,就会发生内存溢出。在Java环境中,...
LINUX部署tomcat内存溢出解决方案 已经使用过了,确实是好用的。
项目在tomcat下运行时,出现常见的几种内存溢出的解决方案
### Java Excel导出Tomcat内存溢出处理方法 在Java应用开发过程中,特别是在进行大量数据处理如Excel导出等操作时,经常会遇到Tomcat服务器内存溢出的问题。内存溢出是指程序运行时申请的内存超过了系统能提供的...
### Eclipse Tomcat 启动时出现内存溢出问题解析及解决方法 #### 一、问题背景与概述 在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这...
### Eclipse + Tomcat 内存溢出参数设置详解 在Java开发过程中,特别是在使用Eclipse作为集成开发环境(IDE)并结合...通过以上步骤,可以有效地解决Eclipse和Tomcat中的内存溢出问题,提高系统的稳定性和响应速度。
标题中的“tomcat内存溢出问题.doc”表明讨论的主题是关于Tomcat服务器遇到的内存溢出(Out Of Memory,OOM)问题,特别是与Java的PermGen空间相关的内存溢出。描述提到,这个问题是因为Tomcat的初始内存设置过小,...
### Eclipse Memory Analyzer (MAT) 分析 Tomcat 内存溢出详解 ...综上所述,正确使用 MAT 分析工具不仅能够帮助我们解决问题,还能提高开发效率和代码质量。希望本文对面临类似问题的开发者有所帮助。
因此,了解并掌握如何解决Tomcat内存溢出问题对于确保应用程序的稳定运行至关重要。 #### 二、Tomcat内存溢出的三种常见类型及其原因 根据文档内容,Tomcat内存溢出大致可以分为以下三种情况: 1. **...
JVM 内存溢出问题解析 JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。这种情况可能是由于数据量过大、死循环、静态变量和静态方法过多、递归、无法确定是否被引用的对象等原因引起的。同时...
tomcat内存溢出,里面列出集中导出内存溢出的愿意和解决方案。
【Tomcat内存溢出解决办法】 Tomcat是Apache软件基金会的一个开源项目,作为一个流行的Java Servlet容器,它常用于部署和运行Java Web应用程序。内存溢出问题(Out of Memory Error,OOME)在高负载或长时间运行的...
在生产环境中,持续监控Tomcat的内存使用情况,设置合理的JVM内存参数,并定期进行内存分析,以便尽早发现和解决问题。 通过以上步骤,我们可以利用MAT有效地诊断和解决Tomcat的内存溢出问题。理解MAT的使用方法...
### MyEclipse-Tomcat JDK 内存溢出问题及解决方案 #### 一、问题概述 在使用MyEclipse进行Java Web开发时,经常会遇到Tomcat服务器启动后出现JVM内存溢出的问题。这种情况通常表现为应用程序运行过程中突然崩溃,...