贊助商連結

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.安裝需要的函式庫

1
sudo apt-get install libapr1-dev libssl-dev gcc libc6-dev

2.取得原始碼並解開

1
2
3
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-homeprefix 改成自己的設定

1
2
3
4
./configure --with-apr=/usr/bin/apr-1-config \
--with-java-home=/usr/lib/jvm/java-6-sun \
--with-ssl=yes \
--prefix=/opt/tomcat

4.編譯與安裝

1
make && make install

5.安裝後處理

編譯完後 binary 會放在 /opt/tomcat/lib 這個資料夾內,如下所示

1
2
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 這個位置,這個位置會根據你的環境會有所不同,根據你的環境來進行修改。

1
2
3
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

連結完後應該會像下面這樣

1
2
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].

參考連結