设置TOMCAT的JVM虚拟机内存大小
tomcat内存调整
解决方法:修改注册表中的参数,加入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更加能满足我们各种不同需求时的要求
修改后:
"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions
"-Xms128M;-Xmx256M;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
"-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
JVM内存设置方法
JVM内存设置方法JVM(Java虚拟机)是Java程序的运行环境,它负责执行Java字节码,并管理程序的内存。
在运行Java程序时,合理地设置JVM的内存大小是非常重要的,它会影响程序的性能和稳定性。
下面是一些关于JVM内存设置的方法和注意事项:1. 初始堆大小(-Xms)和最大堆大小(-Xmx):初始堆大小指定了JVM初始时分配的堆内存大小,最大堆大小则指定了堆内存的上限。
可以通过在启动命令中加上-Xms和-Xmx参数来设置堆内存大小,例如:```java -Xms256m -Xmx512m MyApp```这样就设置了初始堆大小为256MB,最大堆大小为512MB。
2.堆内存的大小选择:堆内存的大小应根据应用程序的需求和服务器硬件条件来选择。
如果堆内存过小,可能会导致OutOfMemoryError;如果堆内存过大,可能会导致频繁的垃圾回收,影响程序的性能。
可以通过监控JVM的堆使用情况来判断是否需要调整堆内存的大小。
可以使用JVM自带的JVisualVM工具或第三方的工具如G1GC日志分析工具进行监控。
3.堆内存的分代设置:堆内存分为新生代(Young Generation)、老年代(Old Generation)和永久代(Permanent Generation,JDK8及之前的版本)/元空间(Metaspace,JDK8及之后的版本)。
新生代用于存储新创建的对象,老年代用于存储长时间存活的对象,永久代/元空间用于存储类和方法等信息。
可以通过设置堆内存的分代比例来调整堆内存的大小,例如:```-XX:NewRatio=2```这样就将堆内存的新生代和老年代的大小比例设置为1:2、可以根据应用程序的特点和需求进行调整。
4.非堆内存的设置:非堆内存包括方法区、直接内存等。
可以通过设置参数来调整非堆内存的大小,例如:```-XX:MaxMetaspaceSize=256m```这样就设置了元空间的最大大小为256MB。
tomcat修改JVM内存配置
1、修改启动时内存参数、并指定JVM时区(在windows server 2008 下时间少了8个小时):在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:window下,在catalina.bat最前面:查看源代码打印帮助 1 set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m一定加在catalina.bat最前面。
linux下,在catalina.sh最前面增加:查看源代码打印帮助1 JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"注意:前后二者区别,有无set,有无双引号。
2、线程池配置(Tomcat6下)使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。
使用方式:首先。
打开/conf/server.xml,增加查看源代码打印帮助 1 <executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60 秒。
然后,修改节点,增加executor属性,如:查看源代码打印帮助1 <connector executor="tomcatThreadPool"2 port="80" protocol="HTTP/1.1"3 connectionTimeout="60000"4 keepAliveTimeout="15000"5 maxKeepAliveRequests="1"6 redirectPort="443"7 ....../>注意:可以多个connector公用1个线程池。
如何设置Tomcat的JVM虚拟机内存大小
如何设置Tomcat的JVM虚拟机内存大小Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。
您可以选择自己的需要选择不同的操作系统和对应的JDK的版本(只要是符合Sun 发布的Java规范的),但我们推荐您使用Sun公司发布的JDK。
确保您所使用的版本是最新的,因为Sun公司和其它一些公司一直在为提高性能而对java虚拟机做一些升级改进。
一些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%。
可以给Java虚拟机设置使用的内存,但是如果你的选择不对的话,虚拟机不会补偿。
可通过命令行的方式改变虚拟机使用内存的大小。
如下表所示有两个参数用来设置虚拟机使用内存的大小。
参数描述-XmsJVM初始化堆的大小-XmxJVM堆的最大值这两个值的大小一般根据需要进行设置。
初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。
一般而言,这个参数不重要。
但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。
由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。
一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。
当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。
因此一般建议堆的最大值设置为可用内存的最大值的80%。
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS='-Xms【初始化内存大小】-Xmx【可以使用的最大内存】'需要把这个两个参数值调大。
JVM内存大小配置方式
JVM内存大小配置方式By:sheagle@1.最简单的方式,tomcat当中进行配置用记事本打开tomcat安装路径下bin文件夹中的Catalina.bat,在文件当中添加set JAV A_OPTS=-Xms256m-Xmx512m该方式只适合于使用Catalina Start指令及其类似方式通过执行Startup.bat中的指令方式启动tomcat2.在Eclipse当中配置tomcat的内存启动大小Eclipse->Window->Preferences->Server->Runtime Environments->选中Apache Tomcat v5.0->点击Edit按钮->在弹出对话框里点击JRE后面的Installed JREs按钮->在弹出对话框中选中tomcat使用的那个JRE->点击Edit按钮->在弹出对话框中,找到Default VM Arguments,并在输入框中输入:-Xms256M-Xmx512M该修改方式只适合于使用Eclipse启动tomcat3.在注册表中修改tomcat大小如果你的电脑上边安装了tomcat服务,那么你也可以通过以下设置来修改通过服务启动时的tomcat内存。
打开tomcat安装路径下bin文件夹中的tomcat6w.exe。
选中Java,修改Inital memory pool和Maximum memory pool该修改方式只适合于使用“服务”方式启动tomcat总结:关于tomcat启动时JVM虚拟机内存大小的配置,针对每种情况会有多种不同的配置方式,基本上都是修改配置文件中参数的大小,无论使用哪种配置方式进行配置,只要能达到效果即可。
设置tomcat中的jvm内存
设置tomcat中的jvm内存设置tomcat中的jvm内存很多时候,如果一个web应用中的程序放太多,或者数据量太大,会导致内存溢出的错误,在我们优化程序和结构的同时,也应该了解一下容器的优化设置。
下面介绍3种方法修改tomcat中的JVM内存大小: 1)在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,如SET CATALINA_OPTS= -Xms64m -Xmx512m;ms是最小的,mx是最大,64m, 512m分别是指内存的容量.2)修改Catalina.bat文件在166行“rem Execute Java with the applicable properties ”以下每行%_EXECJA V A% %JA V A_OPTS% %CATALINA_OPTS% %D EBUG_OPTS% -Djava.endorsed.dirs="%JA V A_ENDORSED_DIRS% " -classpath "%CLASSPATH% " -Dcatalina.base= "%CATALINA_BASE% " -Dcatalina.home= "%CATALINA_HOME% " -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512m 3)1.在命令行里面,进入tomcat的bin目录;2.执行命令:tomcat6.exe //US//Tomcat6 --JvmMs=256--JvmMx=8003.启动tomcat4.在http://127.0.0.1:8080/manager/status看到JVM的大小4)如果使用的是安装版的TOMCAT,那更简单,只需要在开始菜单中找到Apache Tomcat5.5中的Configure Tomcat,在其中找到JA V A选项,设置Maximum memory pool和Initial memory pool两项。
设置tomcat的jvm的虚拟内存大小
设置tomcat的jvm的虚拟内存大小在生产环境中tomcat内存设置不好很容易出现内存溢出。
造成内存溢出是不一样的,当然处理方式也不一样。
这里根据平时遇到的情况和相关资料进行一个总结。
常见的一般会有下面三种情况:1.OutOfMemoryError:Java heap space2.OutOfMemoryError:PermGen space3.OutOfMemoryError:unable to create new native thread.Tomcat内存溢出解决方案对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat jvm参数来解决。
(-Xms -Xmx -XX:PermSize -XX:MaxPermSize)最后一种可能需要调整操作系统和tomcat jvm参数同时调整才能达到目的。
第一种:是堆溢出。
原因分析:JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
Heap size 的大小是Y oung Generation 和T enured Generaion之和。
在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
没有内存泄露的情况下,调整-Xms -Xmx参数可以解决。
-Xms:初始堆大小-Xmx:最大堆大小但堆的大小受下面三方面影响:1.相关操作系统的数据模型(32-bt还是64-bit)限制;(32位系统下,一般限制在1.5G~2G;我在2003 server 系统下(物理内存:4G和6G,jdk:1.6)测试1612M,64位操作系统对内存无限制。
tomcat常用的调优参数
tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。
为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。
本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。
1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。
- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。
- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。
- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。
2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。
- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。
- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。
3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。
- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。
- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。
- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。
4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。
- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。
- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
tomcat内存配置及配置参数详解
tomcat内存配置及配置参数详解1、jvm内存管理机制:1)堆(Heap)和⾮堆(Non-heap)内存按照官⽅的说法:“ 虚拟机具有⼀个堆,堆是运⾏时数据区域,所有类实例和数组的内存均从此处分配。
堆是在 Java 虚拟机启动时创建的。
”“在JVM中堆之外的内存称为⾮堆内存(Non-heap memory)”。
可以看出JVM主要管理两种类型的内存:堆和⾮堆。
简单来说堆就是Java代码可及的内存,是留给开发⼈员使⽤的;⾮堆就是JVM留给⾃⼰⽤的,所以⽅法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运⾏时常数池、字段和⽅法数据)以及⽅法和构造⽅法的代码都在⾮堆内存中。
堆内存分配JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最⼤分配的堆内存由-Xmx指定,默认是物理内存的1/4。
默认空余堆内存⼩于40%时,JVM就会增⼤堆直到-Xmx的最⼤限制;空余堆内存⼤于70%时,JVM会减少堆直到-Xms的最⼩限制。
因此服务器⼀般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的⼤⼩。
说明:如果-Xmx 不指定或者指定偏⼩,应⽤可能会导致ng.OutOfMemory错误,此错误来⾃JVM,不是Throwable的,⽆法⽤try...catch捕捉。
⾮堆内存分配JVM使⽤-XX:PermSize设置⾮堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最⼤⾮堆内存的⼤⼩,默认是物理内存的1/4。
(还有⼀说:MaxPermSize缺省值和-server -client选项相关,-server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32m。
这个我没有实验。
)上⾯错误信息中的PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。
如何配置Tomcat虚拟机内存
Linux环境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’
其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。
Tomcat6有些版本已经没有catalina.bat文件了。这个时候我们需要运行%TOMCAT_HOME%\bin\tomcat6w.exe文件,修改其中的Initial memory pool和Maximum memory pool的值,分别为256、512。
不过在eclipse环境启动Tomcat的时候好像不受上面设置参数的影响,内存还是很小的,这就要在eclipse中重新设置
1 从菜单[Windows]选择[Preferences...]
2 从左侧选择[MyEclipse] - [Servers] - [Tomcat] - [Tomcat 6.X], 右侧选择 Enable, 点击 [Browse..]
12 源代码页面
13 环境页面
14 JRE 配置页面
15 Common 页面,最重要的是右面的 Console Encoding. 一般是GBK/ UTF-8 的比较多
16 回到配置页面,选择左侧的 Paths, 右侧的 class_path 是我们最关心的。 点击[ Add DIR] 将整个目录添加到CLASS_PATH
3 选择Tomcat的安装目录,点击[确定]
4 选择完毕的页面
5 展开左面的Tomcat 6.x, 选择 JDK, 右侧出现系统存在的JDK列表,可以点击[Add] 增加新的JDK, 具体请参考JDK安装部分
6 也可以在已经安装的JDK中选择一个合适的
如何修改和查看tomcat内存大小
为了解决tomcat在大进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式:一、使用catalina.bat 等命令行方式运行的tomcat查看系统最大支持内存命令:java -Xmx1024m -version1、修改tomcat\bin\Catalina.bat 文件windows环境下:在166行左右rem Execute Java with the applicable properties ”以下每行%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS%-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%"-Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTI ON%在%DEBUG_OPTS% 后面添加-Xms256m -Xmx512mlinux环境下:打开在Tomcat的安装目录的bin文件的catalina.sh文件,进入编辑状态.在注释后面加上如下脚本:JAVA_OPTS='-Xms512m -Xmx1024m'JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"其中JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小.-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小保存后,重新以命令行的方式运行tomcat ,即可,然后通过最后面介绍的如何观察tomcat现有内存情况的方法进行查看是否已经变更成功。
linux tomcat jvm参数
在Linux系统下,可以通过修改Tomcat的启动脚本设置JVM参数。
具体步骤如下:
1. 打开Tomcat的启动脚本(通常是catalina.sh或catalina.bat),通常位于Tomcat安装目录下的bin文件夹中。
2. 在脚本中找到JAVA_OPTS或CATALINA_OPTS这一行,如果这一行不存在,可以在脚本开头添加一行。
3. 在该行中设置JVM参数,例如:
* -Xms512m:设置Java堆的初始大小为512MB。
* -Xmx1024m:设置Java堆的最大大小为1024MB。
* -Xss2m:设置每个线程的堆栈大小为2MB。
* -XX:MaxPermSize=256m:设置永久代的最大大小为256MB(仅适用于Java 7及更早版本)。
4. 保存并关闭启动脚本。
5. 重新启动Tomcat服务器,使设置生效。
请注意,JVM参数的具体设置取决于应用程序的需求和可用资源。
以上参数只是一个示例,您可以根据实际情况进行调整。
另外,请确保您具有足够的系统资源来支持所设置的JVM参数,以避免系统资源不足的问题。
tomcat内存使用的上限
Tomcat 的内存使用上限实际上由JVM(Java 虚拟机)的堆内存设置决定,因为Tomcat 是用Java 编写的。
你可以通过设置JVM 的参数来调整Tomcat 的内存使用上限。
以下是设置Tomcat 内存上限的常见JVM 参数:
1. -Xms:指定Java 虚拟机的初始堆大小。
2. -Xmx:指定Java 虚拟机的最大堆大小。
例如,如果你希望Tomcat 的初始堆大小为512MB,最大堆大小为1024MB,可以在Tomcat 启动脚本中设置如下:
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m -Xmx1024m"
或者,如果是Windows 系统,可以在`catalina.bat` 中添加:
set CATALINA_OPTS=%CATALINA_OPTS% -Xms512m -Xmx1024m
在生产环境中,确保根据应用程序的需求和服务器的硬件配置来调整这些值。
过大的堆内存可能导致频繁的垃圾回收,而过小可能导致OutOfMemory 错误。
另外,要注意的是,JVM 还有其他一些与内存相关的参数,例如:
--XX:PermSize:指定永久代的初始大小。
--XX:MaxPermSize:指定永久代的最大大小。
这两个参数通常在较早版本的Java 中使用,而在Java 8 及以后版本中被MetaSpace 取代。
建议在设置这些参数之前,仔细了解你的应用程序的内存使用情况,进行性能测试,并根据实际情况进行调整。
如何设置Java虚拟机JVM启动内存参数
如何设置Java虚拟机JVM启动内存参数Tomcat默认的Java虚拟机JVM启动内存参数⼤约只有64MB或者128MB,⾮常⼩,远远没有利⽤现在服务器的强⼤内存,所以要设置Java虚拟机JVM启动内存参数。
具体设置⽅法为:Tomcat修改TOMCAT_HOME/bin/catalina.bat,在[echo Using CATALINA_BASE: "%CATALINA_BASE%"] 上⾯加⼊,⽐如:set JAVA_OPTS= -server -Xms1536m -Xmx1536m或者JAVA_OPTS="-server -Xms1536m -Xmx1536m",服务器模式参数-server不加也可以,就变成set JAVA_OPTS= -Xms1536m -Xmx1536m或者JAVA_OPTS=" -Xms1536m -Xmx1536m",1536m只是举个例⼦,具体可以在DOS命令窗⼝中测试能使⽤多⼤的Java虚拟机内存,能显⽰JDK/JRE/JVM版本号的就说明能使⽤命令中设置的Java虚拟机内存,如执⾏Java -Xmx1280m -version;Java -Xmx1408m -version;Java -Xmx1536m -version;Java -Xmx1664m -version;Java -Xmx2048m -version;⽐如在下列DOS命令窗⼝中执⾏java -Xmx1024m -version,显⽰出JDK/JRE/JVM版本号,说明最⼤能使⽤1024MB的Java虚拟机内存:下图中执⾏Java -Xmx1152m -version,不能显⽰出JDK/JRE/JVM版本号,说明不能使⽤1152MB的Java虚拟机内存:等等,但是JVM启动内存参数也不可能⽆限增⼤,因为他受限于物理内存和操作系统的限制,Windows操作系统下⼀般可以使⽤1.6GB左右的Java虚拟机内存,有些JDK如Jrockit可能最⼤可达1.9GB左右,此外,Linux、⼩型机AIX等情况可以较⼤。
TOMCAT内存大小调整
TOMCAT内存大小调整一、tomcat内存设置问题在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat、jboss,weblogic)加载jar包时会出现ng.OutOfMemoryError异常。
这主要是由于应用服务器的内存不足引起的。
这种异常常有以下几种情况(以下以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理):1. ng.OutOfMemoryError: PermGen spacePermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space。
从文字上看就是内存溢出,解决方法是加大内存。
为什么会内存溢出,这是由于这块内存主要是被JVM存放Class和Meta信息的,Class在被Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。
这种错误常见在web服务器对JSP进行pre compile的时候。
如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法:手动设置MaxPermSize大小a.如果tomcat是以bat方式启动的,则如下设置:修改TOMCAT_HOME/bin/catalina.sh在“echo "Using CATALINA_BASE:$CATALINA_BASE"”上面加入以下行:JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128mb.如果tomcat是注册成了windows服务,以services方式启动的,则需要修改注册表中的相应键值。
tomcat jvm 参数单位
Tomcat的JVM参数的单位通常不是以物理单位进行衡量的,而是使用了一些特定的参数来调整JVM的运行环境。
以下是一些常见的Tomcat JVM参数及其含义:
1. `-Xms`: 这个参数用于设置JVM的初始堆大小。
它后面的数值表示堆大小的初始值,例如`-Xms256m`表示初始堆大小为256MB。
2. `-Xmx`: 这个参数用于设置JVM的最大堆大小。
它后面的数值表示堆大小的最大值,例如`-Xmx1024m`表示最大堆大小为1024MB。
3. `-Xss`: 这个参数用于设置JVM的线程栈大小。
它后面的数值表示线程栈的大小,例如`-Xss256k`表示线程栈大小为256KB。
4. `-XX:MaxPermSize`: 这个参数用于设置永久代的最大空间大小。
它后面的数值表示永久代最大空间的大小,例如`-XX:MaxPermSize=256m`表示永久代最大空间为256MB。
注意:在Java 8之后,Java已经移除了永久代,这个参数已经不再适用。
5. `-XX:+UseConcMarkSweepGC`: 这个参数用于启用CMS垃圾回收器。
如果需要使用CMS垃圾回收器,可以加上这个参数。
6. `-XX:+PrintGCDetails`: 这个参数用于打印详细的垃圾收集日志。
如果需要了解垃圾收集的详细情况,可以加上这个参数。
这些参数的单位都是以MB(兆字节)或者KB(千字节)进行衡量的。
在设置这些参数时,需要根据服务器的硬件配置和应用程序
的需求来合理调整这些值,以获得最佳的性能和稳定性。
tomcat常用的调优参数
tomcat常用的调优参数调优Tomcat 的性能可以通过调整一些参数来提升其运行效率和吞吐量。
以下是一些常用的Tomcat 调优参数:1. 内存设置:- `-Xms`:设置JVM 初始堆内存大小。
- `-Xmx`:设置JVM 最大堆内存大小。
-`-XX:MaxPermSize`(适用于Java 7 之前的版本):设置JVM 持久代(PermGen)的最大大小。
2. 线程池设置:- `maxThreads`:在`<Connector>` 元素中设置最大线程数。
- `acceptCount`:在`<Connector>` 元素中设置等待队列的最大大小。
3. 垃圾回收(GC)设置:- `-XX:+UseConcMarkSweepGC`:使用并发标记清除(CMS)垃圾收集器。
- `-XX:+CMSParallelRemarkEnabled`:启用CMS 垃圾收集器的并行标记阶段。
- `-XX:+UseParNewGC`:使用ParNew 垃圾收集器与CMS 进行协作。
4. 连接器设置:- `connectionTimeout`:在`<Connector>` 元素中设置连接超时时间。
- `keepAliveTimeout`:在`<Connector>` 元素中设置Keep-Alive 连接的超时时间。
5. 静态资源缓存:- `<Context>` 元素中的`cachingAllowed` 和`cacheMaxSize`:启用静态资源缓存,并设置最大缓存大小。
6. 请求处理:-`<Connector>` 元素中的`maxKeepAliveRequests`:设置每个Keep-Alive 连接允许的最大请求数量。
以上只是一些常见的调优参数示例,具体的参数设置和效果可能取决于你的应用程序和环境。
建议在调优前备份配置文件,并根据具体的需求和实际情况进行调整。
Tomcat内置jvm的内存限制修改
大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。
这个初始内存和最大内存在一定程度都会影响程序的性能。
比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms(初始值)-Xmx(最大值)-Xmn(最小值)来调整应用程序的初始内存和最大内存,一般情况下,将Xms和Xmx两个值设置大小为一样的,这样可以避免再程序运行完毕内存GC时还需要重新调整内存,提高效率。
如:java -Xms64m -Xmx128m a.jar.tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。
在Tomcat在改变这个设置有两种方法:1. 就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,如SET CATALINA_OPTS= -Xms64m -Xmx512m;ms是最小的,mx是最大,64m, 512m分别是指内存的容量.2. 修改Catalina.bat文件linux操作系统:在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh添加:JAVA_OPTS='-Xms1024m -Xmx1024m'要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
windows NT操作系统:在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服务,设置生效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设置TOMCAT的JVM虚拟机内存大小
你知道如何设置TOMCAT的JVM虚拟机内存大小吗,这里和大家分享一下,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。
这个初始内存和最大内存在一定程度都会影响程序的性能。
设置TOMCAT的JVM虚拟机内存大小
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。
JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序。
这个初始内存和最大内存在一定程度都会影响程序的性能。
比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms-Xmx来调整应用程序的初始内存和最大内存。
这两个值的大小一般根据需要进行设置。
初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。
一般而言,这个参数不重要。
但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。
由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。
一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。
当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。
因此一般建议堆的最大值设置为可用内存的最大值的80%。
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
有以下几种方法可以选用:
第一种方法:
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】-Xmx【可以使用的最大内存】'
需要把这个两个参数值调大。
例如:
JAVA_OPTS='-Xms256m-Xmx512m'
表示初始化内存为256MB,可以使用的最大内存为512MB。
第二种方法:环境变量中设
变量名:JAVA_OPTS
变量值:-Xms512m-Xmx512m
第三种方法:前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等),但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:
打开tomcatHome/in/ omcat5w.exe,点击Java选项卡,然后将会发现其中有这么两项:Initialmemorypool和Maximummemorypool.Initialmemorypool这个就是初始化设置的内存的大小。
Maximummemorypool这个是最大内存的大小设置完了就按确定然后再重启TOMCAT 你就会发现tomcat中jvm可用的内存改变了。
另外需要考虑的是Java提供的垃圾回收机制。
虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。
收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。
如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。
如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。
调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。
在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。
如果系统花费很多的时间收集垃圾,请减小堆大小。
一次完全的垃圾收集应该不超过3-5秒。
如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。
一般说来,你应该使用物理内存的80%作为堆大小。
当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。
一个要注意的地方:建议把内存的最高值跟最低值的差值缩小,不然会浪费很多内存的,最低值加大,最高值可以随便设,但是要根据实际的物理内存,如果内存设置太大了,比如设置了512M最大内存,但如果没有512M可用内存,Tomcat就不能启动,还有可能存在内存被系统回收,终止进程的情况。
原文出处:中软卓越 。