关于The APR based Apache Tomcat Native library警告
Linux下解决办法:
原文出处:http://blog.chenlb.com/2009/01/install-apache-portable-runtime-or-tomcat-native-on-tomcat.html
apr 与 tomcat-native 提供更好的伸缩性、性能和集成到本地服务器技术。
如果没有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来安装。
下载三个源码包:
1、apr-1.4.6.tar.gz
2、apr-util-1.4.1.tar.gz
3、tomcat-native-1.1.27-src.tar.gz
安装 apr
- cd apr-1.4.6
- ./configure --prefix=/usr/local/apr
- make
- make install
wget http://apache.mirror.phpchina.com/apr/apr-1.4.6.tar.gz tar zxvf apr-1.4.6.tar.gz #cd apr-1.4.6 ./configure make make installapr 默认安装在 /usr/local/apr
安装 apr-util
- cd apr-util-1.4.1
- ./configure --with-apr=/usr/local/apr
- make
- make install
#cd apr-util-1.4.1 ./configure --with-apr=/usr/local/apr make make install
安装 tomcat-native
- cd tomcat-native-1.2.27-src/jni/native
- ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0
- make
- make install
tar zxvf tomcat-native-1.2.27.tar.gz cd tomcat-native-1.1.14-src/jni/native ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0 make make install
设置 apr 的环境变量:
- vi /etc/profile
- # 后面添加以下内容
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
- # 使profile生效,
- source /etc/profile
vi /etc/profile # 后面添加以下内容 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib # 使profile生效, source /etc/profile
启动 tomcat 后, 看日志:
- bin/startup.sh
- head logs/catalina.out
bin/startup.sh head logs/catalina.out
可以看到以下结果:
信息: Loaded APR based Apache Tomcat Native library 1.1.14. 2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
好了, 可以运行了,但没有测试其性能提交多少。
----------------------------------------------------------------------------------------------------------------------------------------------------------http://tomcat.heanet.ie/native/ 下载tcnative-1.dll,然后放到你的JDK路径下的bin目录下。重新启动tomcat,就没有问题了。
这个tcnative-1.dll 他的作用如下:
tomcat整合本地apr会使效率提升:
一是,处理静态资源的时候速度更快,(注:有人用jmeter,对使用apr前后的tomcat进行压力测试,结果显示,性能是有一定的提升,但是没有想象中多,只有一点点,当然,这与运行的逻辑有关,但是我个人认为在大多数情况下这部分性能提升甚微)。
二是,我认为提升比较多的是对ssl的处理效率,当tomcat处理https的请求是,如果使用本地的openssl库,肯定会比前面提升的效率高。(虽然没有实际测试数据,但我推测这里的性能提升比例上要比第一点多得多)。
原因上面已经说得很清楚了,下面说下我的解决办法。
首先,tcnative-1.dll不需要下载,至少对于Tomcat7来说是这样,我们可以在其bin目录下找到这个dll;
其次,tcnative-1.dll放在哪儿不要紧,只要在系统的PATH中可以找到就行。
解决:
在系统的环境变量中添加CATALINA_HOME,它指向你的Tomcat根目录,接着在PATH路径中添加%CATALINA_HOME%\bin;
这样就可以解决了,对了,设置完成后,可能需要重启下Eclipse。