如何修改和查看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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要查看Tomcat内存,需要在Linux上使用相应的命令和工具来监控Tomcat进程的内存使用情况。可以使用top、htop等工具来查看Tomcat进程占用的内存大小和使用率,也可以使用jmap、jstat等Java的工具来监控Tomcat内存情况。此外,还可以使用JVisualVM等GUI工具来监控Tomcat内存使用情况,以及对Tomcat进行调优和优化。 ### 回答2: Tomcat是一款开放源代码的Java Servlet容器,用于Web应用程序的模块化部署和管理。在Tomcat服务器运行时,为了确保服务器能够正常运行,需要合理地监控服务器的内存使用情况。Linux作为一个常用的服务器操作系统,在查看Tomcat内存使用情况方面可以提供很多有用的工具。 1. top命令 top命令是一个非常实用的Linux命令,它可以显示当前系统中正在运行的进程信息,并按照不同的指标进行排序。使用top命令可以方便地查看Tomcat进程的内存占用情况。 top命令的输出结果中含有很多信息,其中最有用的是第四行的Mem行,它显示了系统内存的总量、使用量、空闲量、以及缓存和缓冲的内存量。在该行下方的进程列表中,可以看到Tomcat进程的ID号、所用 CPU的占用情况和内存使用情况。 2. ps命令 ps命令是一个用于查看进程运行情况的命令,它可以查看系统中所有进程的详细信息。通过查询Tomcat进程的运行情况,可以方便地了解Tomcat进程的内存使用情况。 使用ps命令时,可以添加参数p和aux,这样ps命令将仅显示与指定进程ID相关的信息。例如,可以使用以下命令查看Tomcat进程的内存使用情况: ps aux | grep tomcat命令将显示Tomcat进程的PID、CPU使用情况、内存占用、启动时间和进程命令。 3. jstat命令 Java虚拟机提供了许多用于监视和管理应用程序运行情况的工具,其中jstat命令用于显示Java虚拟机统计信息,包括堆内存使用情况、类装载信息、垃圾回收信息等。 使用jstat命令可以非常方便地查看Tomcat进程的堆内存使用情况。可以使用以下命令来查询Tomcat进程的堆内存使用情况: jstat -gc PID PID是Tomcat进程的PID号,该命令将显示当时的堆内存使用情况,包括已使用、已总共分配、Eden空间使用情况、Survivor空间使用情况和Old空间使用情况。 综上所述,Linux下可以通过top命令、ps命令和jstat命令等多种途径查看Tomcat进程的内存使用情况,这些工具可以方便地监控Tomcat服务器的内存使用情况,从而确保服务器的稳定运行。 ### 回答3: 在linux系统中查看tomcat内存,主要有以下几种方法: 1. top命令:通过top命令可以查看当前系统的进程情况,其中包括tomcat进程的CPU、内存、线程等信息。具体操作如下: 打开终端,输入top命令 找到tomcat进程,使用Shift+M按照内存使用量进行排序 可以查看当前内存占用情况。 2. jmap命令:jmap是JDK自带的一个命令工具,可以输出Java堆的内存映像文件。使用jmap命令可以查看tomcat进程的内存使用情况。具体操作如下: 打开终端,输入jmap -histo:live [进程ID] > file.txt命令 将进程ID换成tomcat的进程ID,并选择一个输出文件 该命令将会输出一个文件,其中包含了tomcat进程的内存使用情况 3. jstat命令:jstat是JDK自带的一个命令工具,可以输出JVM内部的状态信息,包括堆内存、非堆内存、线程数量、GC次数等。使用jstat命令可以查看tomcat进程的内存使用情况。具体操作如下: 打开终端,输入jstat -gcutil [进程ID] [采样间隔时间] [采样次数]命令 将进程ID换成tomcat的进程ID 该命令将会输出tomcat进程内存使用情况的实时数据和历史趋势 总结:以上三种方法都可以查看tomcat进程的内存使用情况,但是它们各有特点,使用时应根据实际需要选择合适的方法。如果需要实时查看内存使用情况,那么可以使用top命令;如果需要查看内存使用趋势,那么可以使用jmap或jstat命令

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值