JVM--Java Virtual Machine,Java虚拟机;tomcat不是直接运行在物理操作系统上,而是运行在Java虚拟机上,通常说的配置jvm就是配置分配给Java虚拟机的内存大小;
如果使用vmware或virtualbox那么给虚拟机分配内存那是很好理解的,可以理解成jvm这个虚拟机就运行tomcat一个进程,所有jvm的内存全给tomcat使用。
查看jvm大小配置只能到控制台“Server Status”那个页面去,由于tomcat默认没有用户的所以无法登录控制台,所以我们需要先配置用户以使能登录控制台。
编缉$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" />
先重启tomcat使配置的用户生效,然后输入用户名密码登录“Server Status”
Free memory--当前分配给jvm的内存中还剩余的内存;Total memory--当前分配给jvm的内存大小;Max memory--最大可分配给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初始默认配置)