这里向大家描述一下如何使用Tomcat配置JVM参数,Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。您可以选择自己的需要选择不同的操作系统和对应的JDK的版本,但还是推荐您使用Sun公司发布的JDK。
主要通过以下的几个jvm参数来设置堆内存的:
-Xmx512m | 最大总堆内存,一般设置为物理内存的1/4 |
-Xms512m | 初始总堆内存,一般将它设置的和最大堆内存一样大,这样就不需要根据当前堆使用情况而调整堆的大小了 |
-Xmn192m | 年轻带堆内存,sun官方推荐为整个堆的3/8 |
堆内存的组成 | 总堆内存 = 年轻带堆内存 + 年老带堆内存 + 持久带堆内存 |
年轻带堆内存 | 对象刚创建出来时放在这里 |
年老带堆内存 | 对象在被真正会回收之前会先放在这里 |
持久带堆内存 | class文件,元数据等放在这里 |
-XX:PermSize=128m | 持久带堆的初始大小 |
-XX:MaxPermSize=128m |
持久带堆的最大大小,eclipse默认为256m。如果要编译jdk这种,一定要把这个设的很大,因为它的类太多了。 |
一、windows环境下
1、添加JVM参数
到Tomcat的bin目录下,打开文件catalina.bat,添加如下参数,然后保存。
set JAVA_OPTS=-server -Xms8024m -Xmx8048m -XX:PermSize=512m -XX:MaxPermSize=512m -Xss2048k
2、检验是否生效
双击bin目录下的startup.bat启动tomcat,然后命令行窗口中输入命令jvisualvm(打开JDK自带的JVM工具Java Visual),查看tomcat的JVM参数。
jvisualvm
如下图所示,JVM启动参数和我们添加的参数一样,说明有效。
如果jvisualvm 没有看到tomcat , 可以手工添加 JMX连接,写上具体的站点和端口,如下图:
二、Linux环境下
1、添加JVM参数
到Tomcat的bin目录下,打开文件catalina.sh,添加如下参数,然后保存。
JAVA_OPTS="-Xms512M -Xmx1024M"
2、检验是否生效
执行startup.sh启动tomcat。
./startup.sh
1
查看JVM参数,输入如下命令。
jps -v
如下图所示,JVM启动参数和我们添加的参数一样,说明有效。