Tomcat 内存设置

转载 2012年03月27日 16:26:50

Linux:
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh
添加:JAVA_OPTS=''-Xms512m -Xmx1024m''
要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值
Windows
在catalina.bat最前面加入
set JAVA_OPTS=-Xms128m -Xmx350m
如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.
但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,
就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了..
windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.
解决办法:
修改注册表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
加入 -Xms300m -Xmx350m
重起tomcat服务,设置生效

 

set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1280m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

 

-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间 此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

 

这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。
  一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
  二、java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
解决方法:手动设置 Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true


TOMCAT内存大小调整

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会...
  • coolwzjcool
  • coolwzjcool
  • 2008年06月13日 17:31
  • 59180

windows下 apache-tomcat-7.0.40加大内存配置

环境: 64位 apache-tomcat-7.0.40  打开这个文件apache-tomcat-7.0.37\bin\catalina.bat, 在echo Using ...
  • nnsword
  • nnsword
  • 2016年02月01日 11:14
  • 4490

tomcat的启动内存设置

 其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置三、实例,以下给出1G内存环境下java jvm...
  • chenjing0718
  • chenjing0718
  • 2007年09月09日 10:08
  • 6300

tomcat内存大小设置(windows)

1、第一:       在catalina.bat文件第一行设置:  JAVA_OPTS='-Xms512 -Xmx512m'      在catalina.bat的@echo off下面添加...
  • wuliu_forever
  • wuliu_forever
  • 2016年09月21日 14:08
  • 4924

tomcat最大最小内存设置

Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/...
  • Smith_My_
  • Smith_My_
  • 2017年07月06日 09:25
  • 1681

设置tomcat的运行内存

使用tomcat作为服务器开发web程序时在很多情况下会遇到修改tomcat运行内存的问题。 介绍两种修改tomcat运行内存的方法: 1在myeclipse中修改 Myecli...
  • u012251421
  • u012251421
  • 2015年09月24日 15:33
  • 2813

Tomcat注册成系统服务并修改内存

Tomcat注册为系统服务下载解压Tomcat【以tomcat6为例】 下载地址:http://tomcat.apache.org/download-60.cgi 将下载的zip包解压: 配置star...
  • lfsf802
  • lfsf802
  • 2015年06月30日 21:17
  • 12084

window 下tomcat 内存设置,bat启动方式的

在catalina.bat的@echo off下面添加 set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:Max...
  • crystalssj
  • crystalssj
  • 2017年02月15日 14:09
  • 1644

linux下指定tomcat的内存大小

主要是为了防止堆内存溢出 直接在catalina.sh脚本最前方增加 JAVA_OPTS='-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSi...
  • kongqz
  • kongqz
  • 2011年10月10日 19:10
  • 14713

关于window下设置tomcat服务启动并且设置内存大小

以前的程序发布都是在linux系统上,最近开发一个项目需要发布到window环境,把发布的过程记录,为了以后的查看。 1:首先我们安装tomcat,我的tomcat是免安装的,我的安装目录为:   ...
  • li951383937
  • li951383937
  • 2016年09月30日 17:07
  • 2433
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tomcat 内存设置
举报原因:
原因补充:

(最多只允许输入30个字)