tomcat優化,配置APR,啓用本地庫接口

今天啓動tomcat無意中發現
Tomcat Native library which allows optimal performance in production environments was not found 
on the java.library
後來經過拜google大師,發現tomcat5.5.10以上版本支持一種叫apr的東西,支持通過apr進行JNI(java 本地接口)調用,使用本地代碼來加速網絡處理。
在這裏與各位分享一下。
 
 
 
APR(Apache portable Run-time libraries,Apache可移植運行庫,是Apache的一個獨立項目)的目的如其名稱一樣,主要爲上層的應用程序提供一個可以跨越多操作系統平臺使用的底層支持接口庫。
先看下配置APR的優點
 
如果不使用apr之前,Tomcat的Servlet線程池使用的是阻塞IO的模式,使用apr之後,線程池變成了NIO的非阻塞模式,而且這種NIO還是使用了操作系統的本地代碼,看tomcat文檔上面的說法是,極大提升web處理能力,不再需要專門放一個web server處理靜態頁面了。 
不用apr之前,你配置多少個等待線程,tomcat就會啓動多少個線程掛起等待,使用apr以後,不管你配置多少,就只有幾個NIO調度的線程,這一點你可以通過kill -3 PID,然後察看log得知。 
假設不使用apr,可能端口的線程調度能力比較差,所以通過iptables進行端口轉發,讓兩個端口去分擔一個端口的線程調度,就有可能減少線程調度的併發,從而提高處理能力,減少資源消耗。
 
 
 
下面去看下如何配置APR:
 
如果沒有apr技術,啓動tomcat 時出現如下提示:
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found 
on the java.library.path: /usr/java/jdk1.6.0_06/jre/lib/i386/client:/usr/java/jdk1.6.0_06/jre/lib/i386:/usr/java/jdk1.6.0_06/jre/../lib/i386:
/usr/java/packages/lib/i386:/lib:/usr/lib
 
如果安裝了apr技術,可以看到以下結果:
信息: Loaded APR based Apache Tomcat Native library 1.1.14.
2011-2-26 19:57:51 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
 
按照官方說明需要一下庫:
APR library
OpenSSL libraries
openssl 可以用 yum install openssl-devel,apr還是下載*.gz來安裝。
 
(1)安裝APR
下載地址 :http://apr.apache.org
#apr-1.3.8.tar.gz
#tar zxvf apr-1.3.8.tar.gz
#cd apr-1.3.8
#./configure
#make
#make install
下載地址 :http://apr.apache.org
安裝在/usr/local/apr
#apr-util-1.3.9.tar.gz
#tar zxvf apr-util-1.3.9.tar.gz
#cd apr-util-1.3.9  
#./configure --with-apr=/usr/local/apr  
#make 
#make install 
安裝在/usr/local/apr/lib
 
tomcat-native在解壓後的tomcat/bin目錄中可以找到
安裝 tomcat-native
#cd /usr/local/tomcat5.5/bin  
#tar zxvf tomcat-native.tar.gz  
#cd tomcat-native-1.1.3/jni/native  
#./configure --with-apr=/usr/local/apr
#make 
#make install 
 
(2)設置 Tomcat 整合 APR
有兩種方法:
(1)修改 tomcat 的啓動 shell ( catalina.sh ),在該文件中加入啓動參數: CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib" 。
(2)也可以在環境變量中配置/etc/profile中加入 export CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib"
(3)判斷安裝成功:
如果看到下面的啓動日誌,表示成功。
org.apache.coyote.http11.Http11AprProtocol init
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章