利用APR本地庫提高Tomcat性能

Tomcat可以使用APR來提供超強的可伸縮性和性能,更好地集成本地服務器技術。APR(Apache Portable Runtime)是一個高可移植庫,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括訪問高級IO功能(例如sendfile,epoll和OpenSSL),OS級別功能(隨機數生成,系統狀態等等),本地進程管理(共享內存,NT管道和UNIX sockets)。這些功能可以使Tomcat作爲一個通常的前臺WEB服務器,能更好地和其它本地web技術集成,總體上讓Java更有效率作爲一個高性能web服務器平臺而不是簡單作爲後臺容器。

  在產品環境中,特別是直接使用Tomcat做WEB服務器的時候,您應該使用Tomcat Native來提高其性能,詳細配置和安裝請參考Tomcat文檔。

如果沒有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 library
  • OpenSSL libraries

openssl 可以用 yum install openssl-devel,apr還是下載*.gz來安裝。
apr-1.3.2.tar.gz
apr-util-1.3.2.tar.gz
兩個可以在 http://apache.mirror.phpchina.com/apr/  找到。
tomcat-native.tar.gz 可以在tomcat/bin目錄下找到。

安裝 apr

  1. # wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz  
  2. # tar zxvf apr-1.3.2.tar.gz  
  3. # cd apr-1.3.2  
  4. # ./configure  
  5. # make  
  6. # make install  
File代碼 複製代碼
  1. # wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz   
  2. # tar zxvf apr-1.3.2.tar.gz   
  3. # cd apr-1.3.2  
  4. # ./configure   
  5. # make   
  6. # make install  
# wget http://apache.mirror.phpchina.com/apr/apr-1.3.2.tar.gz
# tar zxvf apr-1.3.2.tar.gz
# cd apr-1.3.2
# ./configure
# make
# make install

apr 默認安裝在 /usr/local/apr

安裝 apr-util

  1. # wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz  
  2. # tar zxvf apr-util-1.3.2.tar.gz  
  3. # cd apr-util-1.3.2  
  4. # ./configure --with-apr=/usr/local/apr  
  5. # make  
  6. # make install  
File代碼 複製代碼
  1. # wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz   
  2. # tar zxvf apr-util-1.3.2.tar.gz   
  3. # cd apr-util-1.3.2  
  4. # ./configure --with-apr=/usr/local/apr   
  5. # make   
  6. # make install  
# wget http://apache.mirror.phpchina.com/apr/apr-util-1.3.2.tar.gz
# tar zxvf apr-util-1.3.2.tar.gz
# cd apr-util-1.3.2
# ./configure --with-apr=/usr/local/apr
# make
# make install

安裝 tomcat-native

  1. # cd /usr/local/tomcat-6.0.18/bin  
  2. # tar zxvf tomcat-native.tar.gz  
  3. # cd tomcat-native-1.1.14-src/jni/native  
  4. # ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11  
  5. # make  
  6. # make install  
File代碼 複製代碼
  1. # cd /usr/local/tomcat-6.0.18/bin   
  2. # tar zxvf tomcat-native.tar.gz   
  3. # cd tomcat-native-1.1.14-src/jni/native   
  4. # ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11   
  5. # make   
  6. # make install  
# cd /usr/local/tomcat-6.0.18/bin
# tar zxvf tomcat-native.tar.gz
# cd tomcat-native-1.1.14-src/jni/native
# ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_11
# make
# make install

設置 apr 的環境變量:

  1. # vi /etc/profile  
  2. // 後面添加以下內容  
  3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib  
  4. //使profile生效,  
  5. # source /etc/profile  
啓動 tomcat 後, 看日誌:
  1. # bin/startup.sh  
  2. # head logs/catalina.out  
  3.   
  4. // 可以看到以下結果:  
  5. 信息: Loaded APR based Apache Tomcat Native library 1.1.14.  
  6. 2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init  
  7. 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].  
File代碼 複製代碼
  1. # bin/startup.sh   
  2. # head logs/catalina.out   
  3.   
  4. // 可以看到以下結果:   
  5. 信息: Loaded APR based Apache Tomcat Native library 1.1.14.   
  6. 2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init   
  7. 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].  

好了, 可以運行了,但沒有測試其性能提升多少。

 

 

 

參考自:http://www.chinajvm.com/main/helpcontent.jsp?id=5320b71a1eb098e2011ee230a2311367

http://blog.chenlb.com/2009/01/install-apache-portable-runtime-or-tomcat-native-on-tomcat.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章