为 Tomcat 安装 apr

来源:互联网 发布:网络是把双刃剑英语 编辑:程序博客网 时间:2024/05/16 12:36

转载:http://pengranxiang.iteye.com/blog/1128905

APR库使用
Tomcat中使用APR库,其实就是在Tomcat中使用JNI的方式来读取文件以及进行网络传输。可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。
一般在Windows下,可以直接下载编译好的二进制版本的dll库文件来使Tomcat启用APR,一般建议拷贝库文件tcnative-1.dll到Tomcat的bin目录下。而在Linux下,可以直接解压和安装bin目录下的tomcat_native.tar.gz文件,编译之前要确保apr库已经安装。
怎么才能判断Tomcat是否已经启用了APR库呢?方法是通过看Tomcat的启动日志:
如果没有启用APR,则启动日志一般有这么一条:
org.apache.coyote.http11.Http11Protocol start
如果启用了APR,则这条日志就会变成:
org.apache.coyote.http11.Http11AprProtocol start
tcnative-1.dll 下载地址:http://tomcat.heanet.ie/native/
   调优综述

      根据以上分析,如果想要Tomcat达到最优的效果,首先要争取使得操作系统以及网络资源达到最优,并且最好使用高版本的JDK。对于有大量静态页面的系统,采用Apache集成Tomcat的方式,把静态页面交由Apache处理,动态部分交由Tomcat处理,能极大解放Tomcat的处理能力。使用ARP库也能极大的提高Tomcat对静态文件的处理能力。对于并发要求较高的系统,采用Apache加Tomcat集群的方式,将负载分别分担到多个Tomcat上,能很大的提高系统的性能,充分利用硬件资源。同时需要对Tomcat自身进行优化,包括增大内存、调节并发线程数等。



apr 官方介绍:

 

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中使用JNI的方式来读取文件以及进行网络传输。这个东西可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式 传输的话,也可以提升SSL的处理性能。

安装方式

在Window下安装

1. 首先下载 tcnative-1.dll
    下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.19/binaries/win32/

2. 直接拷贝tcnative-1.dll到TOMCAT_HOME/bin目录下,启动即可

3. 验证是否启动
    看见类似这样的信息
Cmd代码  收藏代码
  1. 2011-7-20 15:17:05 org.apache.catalina.core.AprLifecycleListener init  
  2. 信息: Loaded APR based Apache Tomcat Native library 1.1.20.  
  3. 2011-7-20 15:17:05 org.apache.catalina.core.AprLifecycleListener init  
  4. 信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].  
  5. 2011-7-20 15:17:05 org.apache.coyote.http11.Http11AprProtocol init  
    就证明 apr 已启动

如何在配置文件中进行配置apr
在conf/server.xml文件中配置
创建高线程的 Connector : 
<Connector port=”8080 ″ r
edirectPort=”8443 ″  
maxThreads=”5000 ″  默认 200 300     
minSpareThreads=”1000 ″ 默认 4 50 
maxSpareThreads=”4000 ″ 默认50 100  
enableLookups=”false”  默认 true 
acceptCount=”3500 ″ 默认10 50  
protocol="org.apache.coyote.http11.Http11AprProtocol"
compression=”on”  默认 off 
compressableM imeType=”text/html,text/xml,text/javascript,text/css,text/plain” 默认 
text/html,text/xml,text/plain 
connectionTimeout=”60000 ″ 默认 60000 
debug=”0 ″  
URIEncoding=”UTF -8 ″ / > 


在Linux下安装

1. 下载所需的包
到http://apr.apache.org/下载下面3个包 
apr-1.4.5.tar.gz 
apr-iconv-1.2.1.tar.gz 
apr-util-1.3.12.tar.gz

到 http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.20/source/ 下载
tomcat-native-1.1.20-src.tar.gz

 
启动 tomcat 后, 看日志,有如下一行: 
信息 : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].      
2.  安装

a.  安装 apr
Shell代码  收藏代码
  1. tar zxvf apr-1.4.5.tar  
  2. cd apr-1.4.5  
  3. ./configure --prefix=/usr/local/apr  
  4. make  
  5. make install   
 b. 安装 apr-iconv
Shell代码  收藏代码
  1. tar -zxvf apr-iconv-1.2.1.tar.gz  
  2. cd apr-iconv-1.2.1  
  3. ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr  
  4. make  
  5. make install   
 c. 安装 apr-util
Shell代码  收藏代码
  1. tar zxvf apr-util-1.3.12.tar.gz  
  2. cd apr-util-1.3.12  
  3. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv  
  4. make  
  5. make install   
 d. 安装 tomcat-native
Shell代码  收藏代码
  1. tar zxvf tomcat-native-1.1.20-src.tar.gz  
  2. cd tomcat-native-1.1.20-src/jni/native    
  3. ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.6.0_23  
  4. make  
  5. make install   
 
3. 添加环境变量

vi /etc/profile #在文件末尾处添加下面的变量 
# apr 
export LD_LIBRARY_PATH=/usr/local/apr/lib

然后执行下面命令,使环境变量即时生效 
source /etc/profile

4. 验证

启动Tomcat  :
TOMCAT_HOME/bin/start.sh 
more TOMCAT_HOME/logs/catalina.out 

看到类似这样的信息
Shell代码  收藏代码
  1. Jul 202011 15:27:32 PM org.apache.catalina.core.AprLifecycleListener init  
  2. INFO: Loaded APR based Apache Tomcat Native library 1.1.20.   
 就证明 apr 启动成功了。


0 0