Tomcat内存设置方法

Tomcat内存设置方法

Tomcat
内存设置方法

windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
  
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:
如:java -Xms 64m -Xmx 128m a.jar.
   tomcat
的启动程序是包装过的,不能直接使用java -X….. tomcat.*来改变内存的设置。在Tomcat在改变这个设置
有两种方法:
1.
适合用%tomcat_home%/binstartup.bat脚本启动需要在环境变量中加上CATALINA_OPTS这个属性
      
SET CATALINA_OPTS= -Xms 64m -Xmx 512m ;
          ms
是最小的,mx是最大, 64m , 512m 分别是指内存的初始和最大容量.

因为:用startup.bat启动tomcat服务器,会调用catalina.bat文件,在Catalian.bat文件的166“rem Execute Java with the applicable properties ”下面会加载系统设置的相关属性

其中就有%CATALINA_OPTS%这一项。这样tomcat在启动时就会将内存设置为指定的值。

2. 适合tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS 属性的方法就不适用了,因为作为系统服务的话,系统启动时调用的是 %tomcat_home%/bin/tomcat5w.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服务,设置生效



最后,测试
tomcat
大小,
jsp
页面

<%
Runtime lRuntime = Runtime.getRuntime();
out.println(“*** BEGIN MEMORY STATISTICS ***<br/>”);
out.println(“Free Memory: “+lRuntime.freeMemory()+”<br/>”);
out.println(“Max   Memory: “+lRuntime.maxMemory()+”<br/>”);
out.println(“Total Memory: “+lRuntime.totalMemory()+”<br/>”);
out.println(“Available Processors : “+lRuntime.availableProcessors()+”<br/>”);
out.println(“*** END MEMORY STATISTICS ***”);
%>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100537.html原文链接:https://javaforall.net

(0)
上一篇 2021年5月6日 上午9:00
下一篇 2021年5月6日 下午12:00


相关推荐

  • 腾讯元宝手机版

    腾讯元宝手机版

    2026年3月13日
    2
  • Cubieboard2折腾手记(一)「建议收藏」

    Cubieboard2折腾手记(一)「建议收藏」Cubieboard折腾手记  前段时间终于是入手了一块Cubieboad2,板子的参数看着挺不错,全志A20的cpu,1G的RAM,4G的nandflash。本来就是想搞个树莓派来玩的,后来看了看,选了这个CubieBoard2,加上其他的一些配件的,参不多是400软妹币,全志的资料在网上找了下,也是不少的,对linux也算比较友好的。  废话不多说了,拿到板子后当然是装上自己最喜爱

    2022年7月22日
    12
  • transparentblt[通俗易懂]

    transparentblt[通俗易懂]透明位图的显示作者:王骏下载本文示例代码包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt函数的使用TransparentBlt

    2025年8月25日
    3
  • 三点估算法怎么计算_比例估算法公式

    三点估算法怎么计算_比例估算法公式某公司接到一栋大楼的布线任务,经过分析决定将大楼的四层布线任务分别交给甲、乙、丙、丁四个项目经理,每人负责一层布线任务,每层面积为10000平米。布线任务由同一个施工队施工,该工程队有5个施工组。甲经过测算,预计每个施工组每天可以铺设完成200平米,于是估计任务完成时间为10天,甲带领施工队最终经过14天完成任务;乙在施工前咨询了工程队中有经验的成员,经过分析之后估算时间为12天,乙带领施工队最终…

    2025年6月25日
    4
  • Vue父子组件传值的方法[通俗易懂]

    Vue父子组件传值的方法[通俗易懂]1.父向子传值props父组件:&lt;child:inputName="name"&gt;子组件:(1)props:{   inputName:String,   required:true  }(2)props:["inputName"]2.子组件向父组件传值$emit子组件: &lt;span&gt;{{childValue}}&lt;/s…

    2022年5月17日
    116
  • RT-thread finsh组件工作流程[通俗易懂]

    RT-thread finsh组件工作流程[通俗易懂]finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试、查看系统信息。在大部分嵌入式系统中,一般开发调试都使用硬件调试器和printf日志打印,在有些情况下,这两种方式并不是那么好用。比如对于RT-Thread这个多线程系统,我们想知道某个时刻系统中的线程运行状态、手动控制系统状态。如果有一个shell,就可以输入命令,直接相应的函数执行获得需要的

    2022年5月21日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号