由于公司一台电脑有几个tomcat,最近也在做cacti+nagios+check_mk的监控tomcat设置,下面记录一下在一台电脑上启用多个tomcat的其中一个tomcat不会影响到tomcat的设置。
我们在配置tomcat的时候都会要设置安装jdk ,不过Centos6.4系统update以后会将jdk升级到最新版本并不需要自己再去安装,不过这里需要自己来安装。因为系统自带的jdk路径bin文件没有,也可能我没找到请网友指教!
安装好jdk(jdk-6u45-linux-x64-rpm.bin)后,修改/etc/profile文件,在profile文件添加jdk路径
#vi /etc/profile (注意:/srv/tomcat7 是你tomcat存放的路径,自己要修改一下,另外看自己的JDK路径是不是正常,默认在/usr/java里面)
注意:JVM内存溢出
出错场景:在JVM中,如果98%的时间是用于GC(垃圾),且可用的Heap size不足2%时,将会出现JVM Heap溢出
# vi TOMCAT_HOME/bin/catalina.sh
在catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"
-Xms java Heap初始大小。 默认是物理内存的1/64。
-Xmx java heap最大值。建议均设为物理内存的80%。不可超过物理内存。
-Xmn java heap最小值,一般设置为Xmx的3、4分之一。
-XX:PermSize 设定内存的永久保存区初始大小,缺省值为64M。
-XX:MaxPermSize 设定内存的永久保存区最大大小,缺省值为64M。
PATH="$PATH:/srv/tomcat7/bin:/usr/java/jdk1.6.0_45/bin:/usr/java/jdk1.6.0_45/jre/bin"
JAVA_HOME=/usr/java/jdk1.6.0_45
export JAVA_HOME
JRE_HOME=/usr/java/jdk1.6.0_45/jre
export JRE_HOME
TOMCAT_HOME=/srv/tomcat7
export TOMCAT_HOME
CLASSPATH=/usr/java/jdk1.6.0_45/lib:/usr/java/jdk1.6.0_45/jre/lib
export CLASSPATH
PATH="$PATH:/srv/tomcat72/bin:/usr/java/jdk1.6.0_45/bin:/usr/java/jdk1.6.0_45/jre/bin"
JAVA_HOME=/usr/java/jdk1.6.0_45
export JAVA_HOME
JRE_HOME=/usr/java/jdk1.6.0_45/jre
export JRE_HOME
TOMCAT_HOME=/srv/tomcat72
export TOMCAT_HOME
CLASSPATH=/usr/java/jdk1.6.0_45/lib:/usr/java/jdk1.6.0_45/jre/lib
export CLASSPATH
#source /etc/profile
查看所有tomcat的conf里面server.xml的端口不能相同
#vi /srv/tomcat7/conf/server.xml
[root@localhost conf]# cat server.xml
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8005" shutdown="SHUTDOWN"> /必须修改成与其它tomcat的不同端口
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
#cd /srv/tomcat7/bin
#./catalina.sh start (启动tomcat)
#ps -aux|grep jdk (你就会查看到tomcat和jdk启动的进程,可以用kill -9 加进程号 来停用tomcat)
成功修改好/etc/profile文件后我们就可以在多个tomcat 中任意停用或启动其中某一个tomcat并不会影响到其它tomcat的问题,如果你还是出现这种情况,那么你先把所有tomcat停用掉,用kill -9 加进进程。然后reboot重启一下系统,再开启你的tomcat就不会有问题了!