文档章节

window下Tomcat内存设置

 郑剑凡
发布于 2010/12/17 10:56
字数 439
阅读 6090
收藏 3

windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。

   所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:

如:java -Xms64m -Xmx128m a.jar.

   tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置

有两种方法:

1. 适合用%tomcat_home%\bin中的startup.bat脚本启动,需要在环境变量中加上CATALINA_OPTS这个属性 。

       SET CATALINA_OPTS= -Xms64m -Xmx512m;

          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\Procrun 2.0\tomcat7\Parameters\Java下的JvmMsJvmMx

© 著作权归作者所有

上一篇: 深入浅出URL编码
下一篇: grails 查询分页
粉丝 3
博文 8
码字总数 1783
作品 0
莆田
高级程序员
私信 提问
加载中

评论(1)

钛元素
钛元素
我设置达到512m居然就无法启动!!
MyEclipse内存不足问题

1、修改eclipse.ini 在Myeclipse安装目录下G:MyEclipse8.5GenuitecMyEclipse 8.5有一个myeclipse.ini配置文件,设置如下: -vmargs -Xmx512m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSiz......

Mr-iu
2014/02/24
1K
0
JVM调优之Tomcat启动参数配置及详解(一)

开发项目中会遇到Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的问题,通过查找资料找到是通过设置Tomcat 启动堆空间大小、年轻代大小、每个线程大小参数进行调优的,具体如下...

程序猿付显
2016/04/16
2.6K
2
MyEclipse2014 优化设置

1.指定本机java环境 Windows-->preferences-->java-->Insetallel JREs 右侧 单击ADD standard VM-->Next -->Directory-->Finash 点选 新增jre环境-->点击OK 2.更换背景颜色 个人感觉白色比较......

小艺术家被占用了
2015/12/10
158
0
Eclipse与MyEclipse中Tomcat设置堆栈大小

调整堆栈大小,让开发运行Web程序不会轻易报内存不够。 Window –> Preference –> Servers –>Tomcat –> JDK 在JDK中的Optional Java VM arguments中设置 -Xms512m –Xmx1024m –XX:PermSi......

import_key
2015/09/28
109
0
SSH部署到Tomcat内存溢出-OutOfMemoryError 的解决办法

使用ssh集成项目后,部署几次后会就会出现OutOfMemoryError PermGen space系统错误,通过在网上查阅资料,发现这个错误并不是Tomcat的问题,而JVM设计自身的一个缺陷,JVM把内存分了不同的区...

jia_mk
2016/12/08
11
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
52分钟前
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
80
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部