如何设置tomcat jvm 设置的jvm的虚拟内存大小

博客分类:
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置
实例,以下给出1G内存环境下java jvm 的参数设置参考:
JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M
-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”
JAVA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m”
CATALINA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m
-XX:MaxPermSize=256m
-XX:NewSize=192m -XX:MaxNewSize=384m”
在/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服务,设置生效
(Tomcat 5.5 的话,在Apache Software Foundation下有个Procrun 2.0的 Tomcat5\Parameters\Java下
设置JvmMs和JvmMx的值就可以了,要修改10进制的值哦)
不过,OS对内存也有限制
附:如何获得JVM的最大可用内存
在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。
浏览: 437232 次
来自: 北京
引用[u][/u][
引用[u][/u][
引用[u][/u][
derby创建表的时候,添加一个时间列,,用date可以么?? ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'没有更多推荐了,
不良信息举报
举报内容:
如何设置Tomcat的JVM虚拟机内存大小优化JVM
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!14:00 提问
修改服务器tomcat虚拟机内存大小
因为项目需要导入数据,数据量比较大,就oom了,说是修改虚拟机内存大小,但是在网上找了很多都说是在catalina.dat里加上 JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
但是加了之后没起作用,或者怎么看有没有起作用
按赞数排序
你好,配置完成,关闭tomcat,要注意有没有报错,有的版本和jdk不支持会报错。如果没有报错,启动tomcat服务。进入tomcat管理界面,初始化,必须配置tomcat-user.xml
步骤如下:
1、启动tomcat
2、访问 http://localhost:8080/manager/status ,并输入您在安装tomcat时输入的用户与口令,如 admin ,密码 admin(密码是您在tomcat安装时输入的)
注:添加用户,修改conf/tomcat-users.xml
&?xml version='1.0' encoding='utf-8'?&
3、进入了Server Status页面,可以在JVM表格中看到
Free memory: 241.80 MB Total memory: 254.06 MB Max memory: 508.06 MB
上面的文字即代表了,当前空闲内存、当前总内存、最大可使用内存三个数据。
确定了最大内存足够大时,tomcat即可正常运转
最后总结下内存设置中常用的几个参数
(1)-Xms,jvm启动时,初始分配的堆/栈内存
(2)-Xmx,JVM最大允许分配的堆/栈内存,按需分配
(3)-Xss,设定每个线程的堆栈大小
(4)-XX:PermSize,JVM初始分配的非堆内存
(5)-XX:MaxPermSize,JVM最大允许分配的非堆内存,按需分配
-Xms256m -Xms512m -XX:PermSize=64m -XX:MaxPermSize=128m
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
参数还是太小了,还要继续调大,这个参数是方法区内存大小为64M-128M,也就是说最大才是128M
调大到JAVA_OPTS="-server -XX:PermSize=128M -XX:MaxPermSize=256M
这只是方法区内存大小,应该还需要调节堆内存的大小-Xms512m -Xms1024m
应该设置 -Xmx 参数的值,不是PermSize 非堆内存
加上这句话,只是能解决防止出现服务内存溢出,之前我试过,在本地一直内存溢出,后来这么配置,成功的解决。
不过可以用java查看内存堆信息:
Runtime run = Runtime.getRuntime();
System.in.read();
// 暂停程序执行
// System.out.println("memory& total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + (run.totalMemory()-run.freeMemory()) );
System.out.println("time: " + (new Date()));
// 获取开始时内存使用量
long startMem = run.totalMemory()-run.freeMemory();
System.out.println("memory& total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + startMem );
String str = "";
for(int i=0; i&50000; ++i){
System.out.println("time: " + (new Date()));
long endMem = run.totalMemory()-run.freeMemory();
System.out.println("memory& total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + endMem );
System.out.println("memory difference:" + (endMem-startMem));
System.out.println("memory& total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + (run.totalMemory()-run.freeMemory()) );
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐如何设置Tomcat的JVM虚拟机内存大小_百度知道
如何设置Tomcat的JVM虚拟机内存大小
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
我是linux的系统需要在那里加??请高手给出上下文~
还有 我的物理内存是4G的 这两个值应该写...
我有更好的答案
在java web应用开发的过程中,tomcat这个服务器是经常用到的,而它的性能情况直接影响了web应用的效率,提高tomcat的JVM的内存,能提高它的效率,下面介绍下如何设置tomcat的JVM虚拟机内存大小:1、Tomcat作为应用服务器,不能直接运行,需要相应的硬件和操作系统的支持,,需要java虚拟机环境。也就是说tomcat启动的时候 ,JVM会分配一个初始内存以及最大内存给 tomcat,所以要提高tomcat的jvm内存,需要在启动的时候,进行配置。2、找到tomcat在本地电脑中的安装目录,进入这个目录,然后进入bin目录中,在window环境下找到bin目录中的catalina.bat,在linux环境下找到catalina.sh。3、右键编辑catalina.bat这个文件,找到JAVA_OPTS这个选项的位置,这个参数是java启动的时候,需要的启动参数。4、将这个参数设置为JAVA_OPTS='-Xms512m -Xmx1024m'表示初始化分配内存为512MB,可以使用的最大内存为1024MB。5、也可以在操作系统的环境变量中对JAVA_OPTS进行设置,因为tomcat在启动的时候,也会读取操作系统中的环境变量的值,进行加载。6、如果是修改了操作系统的环境变量,需要重启机器,再重启tomcat,如果修改的是tomcat配置文件,需要将配置文件保存,然后重启tomcat,设置就能生效了。
电商及o2o操盘手
如果是windows环境,在startup.bat中加入set JAVA_OPTS=-Xms256m -Xmx1024m,如果是linux则在startup.sh中加入JAVA_OPTS=-Xms256m -Xmx1024m
如将内存增加至1024M第一种: 使用startup.sh 启动tomcat的解决方法修改 TOMCAT_HOME/bin/catalina.sh在“echo &Using CATALINA_BASE:
$CATALINA_BASE&”上面加入以下行: JAVA_OPTS=&-server -XX:PermSize=512M -XX:MaxPermSize=1024m&重启tomcat 使用ps -aux 能得到
-XX:PermSize=256M -XX:MaxPermSize=1024m 这样的信息,说明成功。 第二种:使用server tomcatd start 启动tomcat的解决方法修改 /etc/init.d/tomcatd在“&-Djava.io.tmpdir=$TMP_DIR \
-pidfile $PID_FILE \”
之间增加一行
“-XX:PermSize=256M -XX:MaxPermSize=1024m \”
修改后的内容如下:
“&-Djava.io.tmpdir=$TMP_DIR \
-XX:PermSize=256M -XX:MaxPermSize=1024m \
-pidfile $PID_FILE \”
之后重启tomcat
使用ps -aux 能得到
-XX:PermSize=256M -XX:MaxPermSize=1024m 这样的信息,说明成功。本文出自 “jedy 网络技术&linux学习” 博客,转载请与作者联系!
本回答被提问者采纳
## $Id: catalina.sh 6-04-14 15:25:07Z yoavs $# -----------------------------------------------------------------------------JAVA_HOME=/opt/jdk1.5.0_15#CATALINA_OPTS=&-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899&# OS specific support.
$var _must_ be set to either true or false.VA_HOME=/usr/java/jdk1.6.0_29JAVA_OPTS=&-Xms512M -Xmx1024M&4G物理内存,得看你jvm是32位还是64位,两者能配置的最大内存也有区别。4G物理内存的话,可以配置为1.5G左右,但也要看你的应用是否能使用到这么多,否则光大也没什么用
2条折叠回答
为您推荐:
其他类似问题
内存大小的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
在tomcat bin目录下有一个 catalina.sh
增加红色数据
# ----- Execute The Requested
Command -----------------------------------------JAVA_OPTS="-server -Xms60m -Xmx150m"
# Bugzilla 37848:
only output this if we have a TTY
Runtime lRuntime =
Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS
***&br/&");
out.println("Free Memory:
"+lRuntime.freeMemory()+"&br/&");
out.println("Max
"+lRuntime.maxMemory()+"&br/&");
out.println("Total Memory:
"+lRuntime.totalMemory()+"&br/&");
out.println("Available Processors :
"+lRuntime.availableProcessors()+"&br/&");
out.println("*** END MEMORY
STATISTICS ***");
浏览: 273423 次
来自: 杭州
libmw 写道你好,请问现在爱就是幸福网的首页,扫描二维码为 ...
你好,请问现在爱就是幸福网的首页,扫描二维码为啥不是下载apk ...
简单,有效,就是速度慢了些!
【就是在建数据源的时候(这时你要填写数据库的IP,用户名及密码 ...
“最后在连接的ODBC中使用GB2312结果把乱码给解决了”能 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 tomcat虚拟内存设置 的文章

 

随机推荐