1、Tomcat內存參數調整。
[root@localhost ~]# vim /usr/local/tomcat/bin/catalina.sh JAVA_OPTS="$JAVA_OPTS -server -Xmn1024M -Xms2096M -Xmx2096M \ -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true \ -Dorg.apache.catalina.connector.RECYCLE_FACADES=false -XX:PermSize=512M \ -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC \ -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection \ -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled \ -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly \ -XX:SurvivorRatio=65536 -XX:MaxTenuringThreshold=0 -XX:CMSInitiatingOccupancyFraction=81 \ -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:gc.log -XX:+PrintGCDetails
2、安裝tomcat-native以提升tomcat性能
apr下載地址:http://apache.org/
[root@localhost~]#tar -zxvf apr-1.5.1.tar.gz [root@localhost~]#cd apr-1.5.1 [[email protected]]#./configure --prefix=/usr/local/apr #安裝apr可移植運行庫 [[email protected]]# make [[email protected]]# make install [root@localhost~]# cd /usr/local/tomcat/bin/ [root@localhostbin]# tar xf tomcat-native.tar.gz [root@localhostbin]# cd tomcat-native-1.1.29-src/jni/native/ [root@localhostnative]# ./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java [root@localhostnative]# make && make install [root@localhost ~]# vim /etc/profile #聲明環境變量 export LD_LIBRARY_PATH=/usr/local/apr/lib
3、配置多實例Tomcat。
Tomcat下載地址:http://tomcat.apache.org/
[root@localhost~]# tar xf apache-tomcat-7.0.47.tar.gz -C /usr/local #解壓tomcat到/usr/local目錄 [root@localhost~]# cp -r /usr/local/apache-tomcat-7.0.47/ /usr/local/apache-tomcat-7.0.47-2 #配置Tomcat多實例 [root@localhost~]# mv /usr/local/apache-tomcat-7.0.47/ /usr/local/apache-tomcat-7.0.47-1 [root@localhost~]# ln -sv /usr/local/apache-tomcat-7.0.47-1/ /usr/local/tomcat1 #創建軟連接,方便管理 [root@localhost~]# ln -sv /usr/local/apache-tomcat-7.0.47-2/ /usr/local/tomcat2 [root@localhost ~]# vim /etc/profile.d/custom.sh #聲明環境變量 CATALINA_HOME_1=/usr/local/tomcat1 CATALINA_HOME_2=/usr/local/tomcat2 JAVA_HOME=/usr/local/java LD_LIBRARY_PATH=/usr/local/apr/lib export CATALINA_HOME_1 CATALINA_HOME_2 JAVA_HOME LD_LIBRARY_PATH export PATH=$PATH:$JAVA_HOME/bin [root@localhost ~]# . /etc/profile.d/custom.sh #執行自定義變量腳本,使之生效 [root@localhost~]# vim /usr/local/tomcat1/bin/startup.sh #修改tomcat的啓動和關閉腳本,分別指定tomcat實例家目錄 export CATALINA_HOME=$CATALINA_HOME_1 [root@localhost ~]# vim/usr/local/tomcat1/bin/shutdown.sh exportCATALINA_HOME=$CATALINA_HOME_1 [root@localhost ~]# vim/usr/local/tomcat2/bin/startup.sh exportCATALINA_HOME=$CATALINA_HOME_2 [root@localhost ~]# vim /usr/local/tomcat2/bin/shutdown.sh exportCATALINA_HOME=$CATALINA_HOME_2 [root@localhost ~]# vim /etc/init.d/tomcat1 #!/bin/sh # Tomcat init script for Linux. # # chkconfig: 2345 96 14 # description: The Apache Tomcat servlet/JSP container. JAVA_HOME=/usr/local/java CATALINA_HOME=/usr/local/tomcat1 LD_LIBRARY_PATH=/usr/local/apr/lib export JAVA_HOME CATALINA_HOME LD_LIBRARY_PATH exec $CATALINA_HOME/bin/catalina.sh $* [root@localhost ~]# vim /etc/init.d/tomcat2 #!/bin/sh # Tomcat init script for Linux. # # chkconfig: 2345 96 14 # description: The Apache Tomcat servlet/JSP container. JAVA_HOME=/usr/local/java CATALINA_HOME=/usr/local/tomcat2 LD_LIBRARY_PATH=/usr/local/apr/lib export JAVA_HOME CATALINA_HOME LD_LIBRARY_PATH exec $CATALINA_HOME/bin/catalina.sh $* [root@localhost~]# vim /usr/local/tomcat2/conf/server.xml #修改tomcat2默認端口號 ………… <Server port="8006"shutdown="SHUTDOWN"> ………… <Connectorport="8081" protocol="HTTP/1.1" ………… <Connectorport="8010" protocol="AJP/1.3" redirectPort="8443"/>
4、配置redis session共享。
配置redis session共享,把以下3個jar包放到2個tomcat實例的庫$CATALINA_HOME_1/lib/ $CATALINA_HOME_2/lib/ commons-pool-1.6.jar jedis-2.1.0.jar tomcat-redis-session-manager-1.1.jar 然後修改$CATALINA_HOME/conf/context.xml指定redis服務器路徑 <ValveclassName="com.radiadesign.catalina.session.RedisSessionHandlerValve"/> <ManagerclassName="com.radiadesign.catalina.session.RedisSessionManager"database="0" host="192.168.1.1"maxInactiveInterval="1800" port="1234"/>
5、日誌分割。
[root@localhost ~]# tar xf cronolog-1.6.2.tar.gz #安裝cron日誌分割工具 [root@localhost ~]# cd cronolog-1.6.2 [root@localhost cronolog-1.6.2]# ./configure [root@localhost cronolog-1.6.2]# make && make install [root@localhost ~]# vim /usr/local/tomcat/bin/catalina.sh #touch "$CATALINA_OUT" #註釋該行 org.apache.catalina.startup.Bootstrap "$@" start \ |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null & #>> "$CATALINA_OUT" 2>&1 "&" #註釋該行,添加如上一行 org.apache.catalina.startup.Bootstrap "$@" start \ |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null & #>> "$CATALINA_OUT" 2>&1 "&" #註釋該行,添加如上一行
6、主配置文件優化調整。
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml <Connector port="8080" executor="tomcatThreadPool" protocol="HTTP/1.1" acceptCount="3000" #達到最大線程數後的排隊數 maxThreads="2000" #最大線程數 compression="on" enableLookups="false" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
7、添加Tomcat管理用戶。
[root@localhost ~]# vim /usr/local/tomcat/conf/tomcat-users.xml <tomcat-users> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="123456" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/> </tomcat-users>