Tomcat 利用原生函式庫增加效能
在啟動 Tomcat 時在 log 裡看到這個訊息
資訊: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/server:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
基本上不管也不會有問題,不過看到會增加效能,整個人就高潮了...。
不過可惜官方只有提供 win 系列的 binary,至於 Ubuntu 上的就要自己編了,所以這裡教大家如何在 Ubuntu 編 binary 出來。
環境介紹
- Ubuntu 10.04 x64
- Java 6 update 20
- Tomcat 6.0.26
安裝步驟
1.安裝需要的函式庫
sudo apt-get install libapr1-dev libssl-dev gcc libc6-dev
2.取得原始碼並解開
wget http://www.apache.org/dist/tomcat/tomcat-connectors/native/1.1.20/source/tomcat-native-1.1.20-src.tar.gz
tar -zxvf tomcat-native-1.1.20-src.tar.gz
cd tomcat-native-1.1.20-src/jni/native
3.前置設定
這裡的 java-home 、 prefix 改成自己的設定
./configure --with-apr=/usr/bin/apr-1-config \
--with-java-home=/usr/lib/jvm/java-6-sun \
--with-ssl=yes \
--prefix=/opt/tomcat
4.編譯與安裝
make && make install
5.安裝後處理
編譯完後 binary 會放在 /opt/tomcat/lib 這個資料夾內,如下所示
lrwxrwxrwx 1 root root 23 2010-06-04 10:06 libtcnative-1.so -> libtcnative-1.so.0.1.20
lrwxrwxrwx 1 root root 23 2010-06-04 10:06 libtcnative-1.so.0 -> libtcnative-1.so.0.1.20
6.連結函式庫
接下來連結編譯出來的函式庫到 /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64 這個位置,這個位置會根據你的環境會有所不同,根據你的環境來進行修改。
cd /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64
ln -s /opt/tomcat/lib/libtcnative-1.so.0.1.20 libtcnative-1.so
ln -s /opt/tomcat/lib/libtcnative-1.so.0.1.20 libtcnative-1.so.0
連結完後應該會像下面這樣
lrwxrwxrwx 1 root root 35 2010-06-04 10:08 libtcnative-1.so -> /opt/tomcat/libtcnative-1.so.0.1.20
lrwxrwxrwx 1 root root 35 2010-06-04 10:09 libtcnative-1.so.0 -> /opt/tomcat/libtcnative-1.so.0.1.20
7.啟動 Tomcat
如果一切正常的話,啟動後的 log 會呈現面這樣。
資訊: Loaded APR based Apache Tomcat Native library 1.1.20. 資訊: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
參考連結
- Windows 系列可以參考 JavaWorld@TW 這篇文章
- http://tomcat.apache.org/native-doc/