`

tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果)

阅读更多

转自:http://java0.iteye.com/blog/169302

Tomcat 默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,轻微时,会使系统性能急剧下降,严重时,将导致系统无法运行,影响系统的稳定性。当内存不够用时,常见的问题就是报tomcat内存益处错误,从儿导致客户端包500错误的,如下:解决方法主要是加大TOMCAT可利用内存,并在程序当中加大内存使用。因此根据应用的需求,有必要调整JVM使用内存的大小。现在将手工修改tomcat内存的方法及注意事项列出,希望能对新人有所帮助。

  tomcat提供了两种安装模式,即免安装(*.zip)和安装(*.exe)方式。针对不同的安装方式下修改tomcat内存大小的方法几注意问题(windows环境):

  方式1:当选择安装方式时,可以在安装tomcat的过程进行设置tomcat初始化内存的大小。但是假如说在安装时没有选择,或者应用改变了,需要增加tomcat内存时怎么半呢?此时,我们就要手工修改tomcat的一些文件了。

  看了很多网上的资料,都是说修改<CATALINA_HOME>\bin\catalina.bat文件的内容,即在里面增加一行代码:

set JAVA_OPTS=-Xms512m -Xmx512m //表示初始化最小可用内存和最大可用内存都是512MB(修改相应值即可)

  如在catalina.bat的

rem ----- Execute The Requested Command
echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: %JAVA_HOME%

  这一栏改为

rem ----- Execute The Requested Command
set JAVA_OPTS=-Xms512m -Xmx512m
echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: %JAVA_HOME%

  就可以将JAVA虚拟机分配内存 508.0625MB的!

  但是很多人修改后,发现修改��没有起作用,即通过windows的服务启动tomcat时,实际的内存还是默认的,修改的设置并没有起作用;而通过<CATALINA_HOME>\bin\startup.bat 启动却是生效的。这是为什么呢?因为在安装过程中,JVM的初始化参数已经写在注册表中了,由于没有修改注册表中相关参数,所以以windows服务方式启动时,修改的并没有生效。而通过<CATALINA_HOME>\bin\startup.bat 启动直接是通过<CATALINA_HOME>\bin\catalina.bat文件中的配置的。你需要重新加载到系统服务中才生效,或者你手工在注册表中查找修改启动值,加载到服务中的时候参数已经配置好了,自己修改artup.bat不会改变注册表中的参数设置。

  解决方法:修改注册表中的参数,加入JVM初始化内存的参数:

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions

  值为

-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs

  如加入 -Xms512m -Xmx800m

  方式2:针对免安装的用户,也可以通过将tomcat注册为windows的一个服务的方式来实现:我们可以对service.bat文件做一些其他修改,使tomcat更加能满足我们各种不同需求时的要求

1. 如果让tomcat编译jsp文件,就在PR_CLASSPATH中加入J2SDK的tools.jar

  修改前:

set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar

  修改后:

set PR_CLASSPATH=%JAVA_HOME%\lib\tools.jar; %CATALINA_HOME%\bin\bootstrap.jar

  2.要使用一个特定的JVM,就要修改jvm的参数;要使注册的windows服务的启动方式为自动,增加--Startup Automatic,这个是比较常用的;要用定制的server.xml配置文件并且传递多个参数给StartClass,要修改StartParams 的值,各个值之间用分号分隔:

  修改前:

"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm auto
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams start --StopParams stop

  修改后:

"%EXECUTABLE%" //IS//%SERVICE_NAME% --Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"
--StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap
--StartParams "-config; %CUSTOM_SERVERXML_FILE%; -nonaming; start" --StopParams stop
--Startup Automatic

  3. 指定最大和最小的内存限制,要增加jvm的初始参数

  修改前:

"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Dcatalina.base=%CATALINA_BASE%; -Dcatalina.home=%CATALINA_HOME%; -Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm

  修改后:

"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Xms128M; -Xmx256M; -Dcatalina.base=%CATALINA_BASE%; -Dcatalina.home=%CATALINA_HOME%; -Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
--StartMode jvm --StopMode jvm

  4.有时注册windows服务成功后,但是启动服务时显示“发生服务特定错误: 0.”就是因为jvm没有指定,修改Jvm auto为Jvm "%JAVA_HOME%\jre\bin\server\jvm.dll"后重新注册windows服务就可以启动了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lifesounds/archive/2008/05/15/2447214.aspx

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    TOMCAT内存溢出之解决方法

    然后,找到Tomcat/BIN目录下startup.bat,双击打开它,你会发现Windows内存占用会增加近800M。最后,执行程序,因为是Tomcat重新编译程序,所以第一次会比较慢。 结论: 经过测试,我们得出如下数据:当系统传输约...

    解决tomcat内存溢出的配置方法

    1. **调整JVM参数**:在Tomcat的启动脚本(如`catalina.sh`或`catalina.bat`)中,可以通过设置JVM的启动参数来控制内存大小。常用的是-Xms和-Xmx参数,分别代表初始堆内存和最大堆内存。例如,可以设置为`-Xms256m ...

    MyEclipse下tomcat日志输出和内存溢出解决方法.doc

    为了有效地避免内存溢出问题,可以通过修改Tomcat服务器的启动脚本(如`catalina.sh`或`catalina.bat`),向JVM传递额外的参数来调整内存分配。 ```shell # 在启动脚本中添加以下参数 -XX:PermSize=64M -XX:...

    Eclipse + Tomcat 内存溢出参数设置

    1. **修改Tomcat的启动脚本**:通过编辑`G:\apache-tomcat-6.0.37\bin\catalina.bat`文件,添加`set JAVA_OPTS=-Xms256m -Xmx512m`来指定Tomcat的初始堆内存为256MB,最大堆内存为512MB。 - **操作步骤**: 1. ...

    tomcat内存溢出问题.doc

    在Tomcat中,我们可以通过修改`bin/catalina.sh`(对于Unix/Linux系统)或`bin/catalina.bat`(对于Windows系统)脚本来设置JVM的内存分配。我们需要增加以下两个参数: 1. `-XX:MaxPermSize=256m`:设置最大 Perm...

    eclipse tomcat启动,内存溢出问题

    - 打开Tomcat安装目录下的`bin`文件夹,找到`catalina.bat`文件(Windows系统)或`catalina.sh`文件(Linux/Mac系统)。 - 在文件中添加或修改JVM参数以增加分配给JVM的内存大小。例如,可以将`JAVA_OPTS`设置为: ...

    java excel导出tomcat内存溢出处理方法

    ### Java Excel导出Tomcat内存溢出处理方法 在Java应用开发过程中,特别是在进行大量数据处理如Excel导出等操作时,经常会遇到Tomcat服务器内存溢出的问题。内存溢出是指程序运行时申请的内存超过了系统能提供的...

    设置Tomcat的初始启动内存

    Tomcat初始启动内存设置 ...通过环境变量或修改Catalina.bat文件的方法,可以轻松地设置Tomcat的初始内存大小。然而,需要根据实际情况来设置合适的初始内存大小,以避免服务器的性能下降或内存溢出。

    项目内存溢出

    项目发布启动后内存溢出,在免安装版tomcat包下,catalina.bat文件中的配置。

    java heap space tomcat6 内存溢出

    如果您的tomcat是6.X版本且是安装版的,那么系统设置环境变量是不起作用的,因为这个版本的只能通过点击tomcat6.exe 或tomcat6w.exe才能执行,这种方法可以通过修改注册表能解决:本例是以内存3G为例的。 windows...

    设置tomcat启动内存大小

    3. **重启Tomcat**:修改完成后,需要重启Tomcat服务以使新的内存参数生效。 ### 性能调优建议 在调整Tomcat的内存参数时,应考虑以下几点以实现最佳性能: - **监控内存使用**:使用工具如VisualVM或JConsole...

    tomcat如何扩大内存

    在使用 Tomcat 进行 Web 应用部署时,可能会遇到内存不足的问题,尤其是在启动大型应用或者应用中存在大量缓存数据的情况下,很容易导致 Java 虚拟机(JVM)内存溢出错误。本文将详细介绍如何调整 Tomcat 的内存配置...

    tomcat内存溢出

    - 在Windows系统下,可以通过修改`C:\tomcat5.5.9\bin\catalina.bat`文件中的`JAVA_OPTS`变量来设置JVM的初始堆内存大小(`-Xms`)和最大堆内存大小(`-Xmx`)。例如: ```bat set JAVA_OPTS=-Xms64m -Xmx512m `...

    tomcat启动不了问题处理

    - 解决方案:通过修改`conf/server.xml`中的`<Connector>`元素来更改Tomcat的监听端口。 5. **操作系统限制** - 某些操作系统的设置可能会影响到Tomcat的正常运行,例如资源限制、权限问题等。 - 解决方案:检查...

    apache-tomcat-8.5.35

    安装Tomcat通常包括解压下载的压缩包、配置环境变量、修改`server.xml`配置文件以设置端口号,以及启动和停止服务。在Windows下,可以通过bat脚本`startup.bat`和`shutdown.bat`来启动和关闭Tomcat。 5. **Web应用...

    TOMCAT内存大小调整

    在Tomcat以bat方式启动时,需要修改TOMCAT_HOME/bin/catalina.sh文件,加入以下行:`JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m`。如果Tomcat是注册成了Windows服务,以services方式启动的,则需要...

    修改tomcat内存

    - `catalina.bat`是Windows环境下Tomcat的启动脚本。在该文件中,你可以找到`set JAVA_OPTS`行,这里就是设置JVM参数的地方。例如,你可以添加以下行来增加内存分配: ```batch set JAVA_OPTS=-Xms256m -Xmx1024m...

    Eclipse内存溢出

    在Tomcat服务器中,可以通过修改`bin`目录下的`catalina.bat`脚本来调整Java虚拟机(JVM)的内存参数。具体操作如下: 1. **打开`catalina.bat`文件**:使用文本编辑器打开Tomcat安装目录下的`bin`文件夹中的`...

Global site tag (gtag.js) - Google Analytics