如何配置Tomcat的JVM虚拟机内存大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置Tomcat的JVM虚拟机内存大小相关的知识,希望对你有一定的参考价值。

  jvm内存有好几种呢

  windows下修改JVM内存大小:
  情况一:解压版本的Tomcat, 要通过startup.bat启动tomcat才能加载配置
  要添加在tomcat 的bin 下catalina.bat 里
  rem Guess CATALINA_HOME if not defined
  set CURRENT_DIR=%cd%后面添加,红色的为新添加的.
  set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true
  
  情况二:安装版的Tomcat下没有catalina.bat
  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服务,设置生效
  jvm参数说明:
  -server 一定要作为第一个参数,启用JDK的server版本,在多个CPU时性能佳
  -Xms java Heap初始大小。 默认是物理内存的1/64。
  -Xmx java heap最大值。建议均设为物理内存的80%。不可超过物理内存。
  -Xmn java heap最小值,一般设置为Xmx的3、4分之一。
  -XX:PermSize 设定内存的永久保存区初始大小,缺省值为64M。
  -XX:MaxPermSize 设定内存的永久保存区最大大小,缺省值为64M。
  -XX:SurvivorRatio=2 生还者池的大小,默认是2。如
  -XX:NewSize 新生成的池的初始大小。 缺省值为2M。
  -XX:MaxNewSize 新生成的池的最大大小。 缺省值为32M。
  +XX:AggressiveHeap 让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
  -Xss 每个线程的Stack大小
  -verbose:gc 现实垃圾收集信息
  -Xloggc:gc.log 指定垃圾收集日志文件
  -XX:+UseParNewGC 缩短minor收集的时间
  -XX:+UseConcMarkSweepGC 缩短major收集的时间
  -XX:userParNewGC 可用来设置并行收集(多CPU)
  -XX:ParallelGCThreads 可用来增加并行度(多CPU)
  -XX:UseParallelGC 设置后可以使用并行清除收集器(多CPU)
参考技术A 去server.xml文件去修改就可以了

tomcat查看并修改jvm大小

JVM--Java Virtual Machine,Java虚拟机;tomcat不是直接运行在物理操作系统上,而是运行在Java虚拟机上,通常说的配置jvm就是配置分配给Java虚拟机的内存大小;

如果使用vmware或virtualbox那么给虚拟机分配内存那是很好理解的,可以理解成jvm这个虚拟机就运行tomcat一个进程,所有jvm的内存全给tomcat使用。

 

一、查看当前配置的jvm大小

查看jvm大小配置只能到控制台“Server Status”那个页面去,由于tomcat默认没有用户的所以无法登录控制台,所以我们需要先配置用户以使能登录控制台。

1.1配置控制台用户

编缉$CATALINA_HOME/conf/tomcat-users.xml,在<tomcat-users>标签内添加以下内容:

<role rolename="manager-gui" />
<role rolename="admin-gui" />
<user username="admin" password="abcd1234" roles="manager-gui,admin-gui" />

1.2查看jvm配置情况

先重启tomcat使配置的用户生效,然后输入用户名密码登录“Server Status”

Free memory--当前分配给jvm的内存中还剩余的内存;Total memory--当前分配给jvm的内存大小;Max memory--最大可分配给jvm的内存大小。

 

二、修改jvm大小

编缉$CATALINA_HOME/bin/catalina.sh,在最前面(注释除外)添加:

JAVA_OPTS=\'-Xms512m -Xmx1024m\'

-Xms表示初始分配给jvm的内存大小,-Xmx表示最大可分配给jvm的内存大小,根据自己需要修改。

重启tomcat使配置生效,然后再登录“Server Status”,再次查看jvm配置是否生效

 

 三、说明

有些教程说直接添加JAVA_OPTS=-Xms512m -Xmx1024m,也就是没有单引号,实际测试发现这样是不生效的

最直接的是使用ps -ef | grep tomcat查看:

JAVA_OPTS=‘-Xms512m -Xmx1024m’结果如上图所示;可见有配置的jvm参数

JAVA_OPTS=-Xms512m -Xmx1024m结果如上图所示;可见没有配置的jvm参数(到server status也确认这样配置不生效,使用的是tomcat初始默认配置)

 

参考:

http://blog.csdn.net/zhenzhendeblog/article/details/50518685

http://www.cnblogs.com/thankyou/p/4352057.html

 
分类: Tomcat

以上是关于如何配置Tomcat的JVM虚拟机内存大小的主要内容,如果未能解决你的问题,请参考以下文章

如何设置Tomcat的JVM虚拟机内存大小

tomcat 内存大小配置

如何设定tomcat启动时JVM内存大小

如何设定tomcat启动时jvm内存大小

tomcat的内存如何限制大小

Tomcat中JVM内存溢出及合理配置