linux下tomcat的安裝及優化

Tomcat是一個免費的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache,Sun和其它一些公司及個人共同開發而成。由於有了Sun的參與和支持,最新的Servlet和Jsp規範總能在Tomcat中得到體現。Tomcat被JavaWorld雜誌的編輯選爲2001年度最具創新的java產品,可見其在業界的地位。
本文主要內容:
(1)安裝apr,這是 Apache 爲了提升 Tomcat 的性能搞的一套本地化 Socket, Thread, IO 組件也就是說它有高級 IO 功能, 操作系統級別的功能調用, 以及本地進程處理等等。
(2)安裝Tomcat Native,這個項目可以讓 Tomcat 使用 Apache 的 apr 包來處理包括文件和網絡IO操作,以提升性能。
(3)安裝tomcat爲系統服務
(4)優化tomcat的jvm內存池
(5)修改tomcat的併發連接數
 
一、安裝apr
(1)安裝apr
# tar zxvf apr-1.4.2.tar.gz 
# cd apr-1.4.2
# ./configure --prefix=/usr/local/www/apr
# make
# make install
 
(2)安裝apr-iconv
# tar -zxvf apr-iconv-1.2.1.tar.gz
# cd apr-iconv-1.2.1
# ./configure --prefix=/usr/local/www/apr-iconv --with-apr=/usr/local/www/apr 
# make
# make install
 
(3)安裝apr-util
 
# tar zxvf apr-util-1.3.9.tar.gz
# cd apr-util-1.3.9
# ./configure --prefix=/usr/local/www/apr-util  --with-apr=/usr/local/www/apr --with-apr-iconv=/usr/local/www/apr-iconv/bin/apriconv 
# make
# make install
 
二、安裝tomcat和tomcat-native
 
(1)JDK安裝
# chmod a+x jdk-6u18-linux-i586-rpm.bin
# ./jdk-6u7-linux-i586-rpm.bin
# ln -s /usr/java/jdk1.6.0_18 /usr/local/java
 
設置環境變量
# vi /etc/profile
末尾增加如下內容
JAVA_HOME=/usr/local/java
CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar
PATH=/usr/local/java/bin:$PATH
export PATH JAVA_HOME CLASSPATH
# source /etc/profile
# java –version  
查看java版本,如果是1.6的,就是說明安裝成功了。
 
(2)安裝Tomcat
 
# tar -zxvf apache-tomcat-6.0.26.tar.gz 
# mv apache-tomcat-6.0.26 /usr/local/www/tomcat
# vi /usr/local/www/tomcat/bin/catalina.sh
加入一行:
JAVA_HOME=/usr/local/java
# /usr/local/www/tomcat/bin/startup.sh
 
(3)安裝tomcat-native
# cp tomcat-native-1.1.20-src.tar.gz /usr/local/www/tomcat/bin/
# cd /usr/local/www/tomcat/bin   
# tar zxvf tomcat-native-1.1.20-src.tar.gz 
# cd tomcat-native-1.1.20-src/jni/native   
# ./configure --with-apr=/usr/local/www/apr --with-java-home=/usr/local/java 
# make  
# make install  
 
(4)設置 apr 的環境變量:
# vi /etc/profile   
後面添加以下內容   
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib   
# source /etc/profile  
啓動 tomcat 後, 看日誌:
# more /usr/local/www/tomcat/logs/catalina.out 
Dec 5, 2009 3:25:39 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
 
三、tomcat添加到系統服務
# cd /usr/local/www/tomcat/bin/
# tar -zxvf jsvc.tar.gz 
# cd jsvc-src
# chmod a+x configure
# ./configure --with-java=/usr/local/java
# make
# cp /usr/local/www/tomcat/bin/jsvc-src/native/Tomcat5.sh /etc/rc.d/init.d/tomcat
# vi /etc/rc.d/init.d/tomcat 
 
在#!bin/sh下添加
#chkconfig: 2345 85 15
#description: apache-tomcat.6 
相應的內容修改爲如下內容:
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/www/tomcat
DAEMON_HOME=/usr/local/www/tomcat/bin
TOMCAT_USER=tomcat
CATALINA_BASE=/usr/local/www/tomcat
CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
$DAEMON_HOME/jsvc-src/jsvc   #有兩處
 
添加執行用戶tomcat
# groupadd tomcat
# useradd -g tomcat -s /sbin/nologin -M tomcat
加入系統服務,開機自啓動
# chown -R tomcat.tomcat /usr/local/www/tomcat
# chmod a+x /etc/rc.d/init.d/tomcat 
# chkconfig --add tomcat
# chkconfig tomcat on
 
四、修改Java虛擬機的虛擬內存
 
(1)添加tomcat管理員
# vi /usr/local/www/tomcat/conf/tomcat-users.xml
在<tomcat-users>  </tomcat-users>中間添加
<role rolename="manager"/>
<user username="tomcat" password="lin31415926" roles="manager"/>
其中username="tomcat"爲用戶名password="lin31415926"爲密碼
 
(2)修改Java虛擬機的虛擬內存
tomcat默認的JVM比較小
查看JVM
打開http://ip:8080/ 
點擊"status",查看JVM選項
Free memory: 3.25 MB Total memory: 7.62 MB Max memory: 121.81 MB
 
# vi /etc/init.d/tomcat
在CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"下方添加一句
JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn256m -Djava.awt.headless=true"
在$CATALINA_OPTS \上面添加一句
$JAVA_OPTS \
重啓一下tomcat,然後再次查看JVM
Free memory: 953.12 MB Total memory: 998.43 MB Max memory: 998.43 MB
 
五、修改tomcat併發連接數
 
tomcat6.0 默認併發數爲200,查看方法和JVM一樣,查看http-8080選項
Max threads: 200
# vi /usr/local/www/tomcat/conf/server.xml 
修改前:
<Connector port="8080" protocol="HTTP/1.1"   
                redirectPort="8443"  
                connectionTimeout="20000"  
                />  
修改後:  
<Connector port="8080" protocol="HTTP/1.1"   
                maxHttpHeaderSize="8192" useBodyEncodingForURI="true"  
                maxThreads="1000"
                redirectPort="8443"  
                enableLookups="false"  
                compression="on"   
                compressionMinSize="2048"  
                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"   
                connectionTimeout="20000"  
                disableUploadTimeout="true"  
                />
<!-- 
   port:Tomcat服務器監聽的端口號
   maxHttpHeaderSize:Http的Header的最大限制
   enableLookups="false" 使用允許DNS查詢,通常情況下設置爲false
   redirectPort 服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號
   maxThreads Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。
   acceptCount 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。
   connectionTimeout 網絡連接超時,單位:毫秒。設置爲0表示永不超時,這樣設置有隱患的。通常可設置爲30000毫秒。
   minSpareThreads Tomcat初始化時創建的線程數。
   maxSpareThreads 一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。
   compression="on" 打開壓縮功能
   compressionMinSize 啓用壓縮的輸出內容大小,這裏面默認爲2KB 
   compressableMimeType壓縮類型
-->
 
重啓tomcat後再次查看
Max threads: 1000 
 如需轉載請註明:轉載自: 風往北吹的IT博客 [ http://blog.yahunet.com/]
 本文鏈接地址:http://blog.yahunet.com/post-60.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章