今天启动tomcat无意中发现
Tomcat Native library which allows optimal performance in production environments was not found
on the java.library
后来经过拜google大师,发现tomcat5.5.10以上版本支持一种叫apr的东西,支持通过apr进行JNI(java 本地接口)调用,使用本地代码来加速网络处理。
在这里与各位分享一下。
APR(Apache portable Run-time libraries,Apache可移植运行库,是Apache的一个独立项目)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
先看下配置APR的优点
如果不使用apr之前,Tomcat的Servlet线程池使用的是阻塞IO的模式,使用apr之后,线程池变成了NIO的非阻塞模式,而且这种NIO还是使用了操作系统的本地代码,看tomcat文档上面的说法是,极大提升web处理能力,不再需要专门放一个web server处理静态页面了。
不用apr之前,你配置多少个等待线程,tomcat就会启动多少个线程挂起等待,使用apr以后,不管你配置多少,就只有几个NIO调度的线程,这一点你可以通过kill -3 PID,然后察看log得知。
假设不使用apr,可能端口的线程调度能力比较差,所以通过iptables进行端口转发,让两个端口去分担一个端口的线程调度,就有可能减少线程调度的并发,从而提高处理能力,减少资源消耗。
下面去看下如何配置APR:
如果没有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技术,可以看到以下结果:
信息: Loaded APR based Apache Tomcat Native library 1.1.14.
2011-2-26 19:57:51 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
按照官方说明需要一下库:
APR library
OpenSSL libraries
openssl 可以用 yum install openssl-devel,apr还是下载*.gz来安装。
(1)安装APR
#apr-1.3.8.tar.gz
#tar zxvf apr-1.3.8.tar.gz
#cd apr-1.3.8
#./configure
#make
#make install
安装在/usr/local/apr
#apr-util-1.3.9.tar.gz
#tar zxvf apr-util-1.3.9.tar.gz
#cd apr-util-1.3.9
#./configure --with-apr=/usr/local/apr
#make
#make install
安装在/usr/local/apr/lib
tomcat-native在解压后的tomcat/bin目录中可以找到
安装 tomcat-native
#cd /usr/local/tomcat5.5/bin
#tar zxvf tomcat-native.tar.gz
#cd tomcat-native-1.1.3/jni/native
#./configure --with-apr=/usr/local/apr
#make
#make install
(2)设置 Tomcat 整合 APR
有两种方法:
(1)修改 tomcat 的启动 shell ( catalina.sh ),在该文件中加入启动参数: CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib" 。
(2)也可以在环境变量中配置/etc/profile中加入 export CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib"
(3)判断安装成功:
如果看到下面的启动日志,表示成功。
org.apache.coyote.http11.Http11AprProtocol init
分享到:
相关推荐
APR是一个C语言库,提供了操作系统接口的抽象层,使得Apache可以在多种平台上运行得更加高效。 首先,安装Apache2.2。下载适合Windows系统的Apache版本,确保它包含了支持APR和Tomcat集成所需的模块,如mod_jk或mod...
本文将详细讲解如何在Tomcat 8中配置和启用APR,以及涉及的相关组件。 1. **Apache Portable Runtime (APR)** APR库提供了一个与平台无关的接口,让开发者能够利用底层操作系统的特性,如高效I/O操作和多线程处理...
标题"Tomcat 安装apr 支持 Tomcat Native"指的是在Apache Tomcat服务器上安装和配置Apache Portable Runtime (APR)库以启用Tomcat Native库的支持。Tomcat Native是一个可选的组件,它可以提供对操作系统级别的优化...
这通常包括下载和安装libapr和libaprutil,然后配置Tomcat的`conf/server.xml`文件,启用APR连接器。 - **安装Redis**:在服务器上安装Redis,确保它是运行状态,并且配置好相应的安全性,例如设置密码保护、限制...
3. **下载Tomcat Native库**:Tomcat Native是Tomcat与APR交互的桥梁,它包含了APR的Java JNI接口。下载对应的Tomcat版本和操作系统的Tomcat Native库,并解压。 4. **配置环境变量**:在系统环境变量中添加OpenSSL...
为了提升Tomcat的性能,开发者有时会选择启用Apache Portable Runtime(APR)库。APR库提供了与操作系统底层更紧密的集成,从而能够利用系统的本地功能,如异步网络I/O和高性能的SSL处理。本篇将详细介绍如何在Linux...
4. 配置Tomcat的`server.xml`文件,添加`<UseAprCodec>`元素到`Connector`配置中,启用APR支持。 使用APR带来的优势包括: - 更好的性能:由于APR直接与操作系统交互,因此可以减少Java代码的调用开销。 - 支持更多...
《Tomcat启动优化与并发优化配置详解》 Tomcat,作为Java Web应用最常用的服务器,其性能优化对于提升系统整体效率至关重要。本文将深入探讨Tomcat的启动优化和并发优化配置,帮助开发者们更好地理解并实践这些关键...
3. `tomcat-native.tar.gz`: Tomcat的本地库,用于支持APR,可能包含`libtcnative-1.so`,这是Tomcat与APR交互的关键。 4. `README`或`INSTALL`文件:通常包含安装和配置的指南。 5. 可能还有其他配置文件、头文件...
6. **配置Tomcat**:编辑Tomcat的`conf/server.xml`文件,添加以下行到`<GlobalNamingResources>`标签内,以启用 APR/Native 支持: ``` ``` 7. **启动Tomcat**:现在,你可以启动或重启Tomcat服务器,检查是否...
本文将详细讲解如何在Java源码环境中安装Tomcat,并配置Apr以启用Tomcat Native支持。 首先,理解Apr是什么至关重要。Apr是Apache HTTP服务器项目的子项目,提供了一个跨平台的C语言库,用于统一不同操作系统下的...
本文将围绕“Tomcat7性能优化”这一主题,详细介绍如何通过优化配置提高Tomcat服务器的并发能力,并深入探讨服务器资源(如CPU、内存、硬盘等)对处理能力的影响。 #### 二、理解服务器资源的重要性 在优化Tomcat...
| APR/本地 | 使用 APR 库,适用于高性能需求,依赖于操作系统级别的支持。 | #### 六、结论 通过合理地配置 Tomcat 8 的连接器,可以极大地提高其处理能力和服务质量。开发者可以根据应用的特点和负载情况,选择...
Java的Tomcat服务器是许多Web应用程序的首选平台,它提供了高效、稳定且可扩展的...这个过程涉及了Java的本地接口、操作系统级别的优化以及配置管理,是高级Java开发者深入理解Tomcat运作机制和提升性能的重要途径。
要启用Tomcat的APR模式,首先需要安装两个关键的依赖库:OpenSSL和APR库。OpenSSL是一个强大的安全套接字层密码库,包含了各种主要的密码算法、常用的密钥和证书封装管理功能,以及SSL协议,并提供丰富的应用程序供...
4. **启用NIO或 APR**: Tomcat默认使用BIO(阻塞I/O),但为了提高性能,可以切换到NIO(非阻塞I/O)或APR(Apache Portable Runtime)模式。NIO使用单一线程处理所有连接,而APR利用操作系统级别的特性,如Windows...
在 Tomcat 服务器中配置 SSL 加密连接是非常重要的,然而在 Tomcat 6.0.33 版本中,默认启用了 APR(APR 是通过 JNI 访问的可移植库,可以提高 Tomcat 的性能和伸缩性),这使得传统的 SSL 配置方式无法使用。...
总的来说,Tomcat性能优化是一个涉及多个层面的过程,需要结合实际情况,从操作系统、JVM到Tomcat自身配置全面考虑,才能实现最佳的运行效果。同时,持续监控和调整是保持高性能的关键,因为随着应用的发展,优化的...
为了确保高效稳定的服务,对Tomcat进行优化配置是至关重要的。以下是一些关键的Tomcat优化策略,它们可以提高服务器性能,增加支持的并发用户数量。 1. **JVM配置优化**: - **内存设置**:根据服务器硬件资源和...
同时,需要在Tomcat的`conf/server.xml`文件中添加以下配置,让Tomcat知道如何使用APR/Native库: ``` ... type="org.apache.catalina.core.AprLifecycleListener$apr" description="Apache Tomcat Native" ...