如何修改和查看tomcat内存大小

为了解决tomcat在进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式:
一、使用 catalina.bat 等命令行方式运行的 tomcat

查看系统是否能支持所填最大内存命令:java -Xmx1024m -version,当所填值不合法时,执行该命令将报错

1、修改 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% %ACTION%

在 %DEBUG_OPTS% 后面添加-Xms256m -Xmx512m

linux环境下:

打开在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现有内存情况的方法进行查看是否已经变更成功。

 

二、使用 系统中的 “服务”,或者开始菜单的可执行程序运行的tomcat

1、关闭 现在正在运行的tomcat


2.1 [注意]

[高版本tomcat配置方法]

如果是tomcat 5.5 或者是 5.0.28 之后的版本,在 Java 选项卡中,下方,会有
Inital memory Pool:   
Maximum memory Pool:
Thread stack size:
三个输入框,在这里即可不用做上面的操作,直接配置内存大小,只需要设置
Inital memory Pool 为 256
Maximum memory Pool 为 512

点击确定后,重启tomcat 生效

 

如果您是低版本的tomcat,发现没有上面那几个录入框,请看下面的操作步骤

 

[低版本tomcat配置方法]

在开始菜单中,找到“Apache Tomcat 5.0”,并选择“Configure Tomcat”,在弹出的对话框窗口中,切换到 Java VM 选项卡,并在 Java Options 输入框的最前面输入

-Xms256m -Xmx512m

即输入框中的内容会像下面的代码(与自己的环境有所区别)

-Xms256m -Xmx512m
-Dcatalina.home="C:\tomcat5"
-Djava.endorsed.dirs="C:\tomcat5\common\endorsed"
-Xrs

设置完后,点击“确定”,并重启tomcat即可。

 

三、查看现有tomcat的内存大小情况

1、启动tomcat
2、访问 http://localhost:8080/manager/status ,并输入您在安装tomcat时输入的用户与口令,如 admin ,密码 admin(密码是您在tomcat安装时输入的)

注:添加用户,修改conf/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>

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

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值