APR简介:java
APR是Apache Portable Runtime的简称,它是一个高度可移植的库。APR有许多用途,包括访问高级I/O功能(如sendfile、epoll和openssl)、操做系统级功能(随机数生成、系统状态等)和本机进程处理(共享内存,NT管道和Unix套接字)等。apache
基于APR实现的链接器因为能够操做系统级别的功能,因此性能上相对与其余链接器来讲要高。让Tomcat使用APR链接器也是经常使用的调优手段之一,本文将手把手教你们如何在Linux下让Tomcat使用APR链接器。vim
官网地址:tomcat
下载地址:服务器
进入下载页面,复制源码包的下载连接:性能
到Linux上使用wget
命令进行下载:spa
[root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
安装编译所需依赖:操作系统
[root@txy-server ~]# yum install -y openssl-devel gcc expat-devel
解压下载好的apr源码包,参照以下命令完成编译安装:
# 解压缩 [root@txy-server /usr/local/src]# tar -zxvf apr-1.7.0.tar.gz [root@txy-server /usr/local/src]# cd apr-1.7.0/ # 配置编译参数,生成Makefile [root@txy-server /usr/local/src/apr-1.7.0]# ./configure --prefix=/usr/local/apr # 指定安装路径 # 进行编译安装 [root@txy-server /usr/local/src/apr-1.7.0]# make && make install
因为APR须要依赖几个模块,其中一个就是APR-util。因此咱们得将APR依赖的模块给安装上。仍是以前的下载页面,复制APR-util源码包的下载连接:
到Linux上使用wget
命令进行下载:
[root@txy-server /usr/local/src/apr-1.7.0]# cd ../ [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
解压下载好的APR-util源码包,参照以下命令完成编译安装:
[root@txy-server /usr/local/src]# tar -zxvf apr-util-1.6.1.tar.gz [root@txy-server /usr/local/src]# cd apr-util-1.6.1/ [root@txy-server /usr/local/src/apr-util-1.6.1]# ./configure -prefix=/usr/local/apr-util --with-apr=/usr/local/apr # 指定apr的安装路径 [root@txy-server /usr/local/src/apr-util-1.6.1]# make && make install
而后是APR-iconv模块,一样是以前的下载页面,复制APR-iconv源码包的下载连接:
到Linux上使用wget
命令进行下载:
[root@txy-server /usr/local/src/apr-util-1.6.1]# cd ../ [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz
解压下载好的APR-iconv源码包,参照以下命令完成编译安装:
[root@txy-server /usr/local/src]# tar -zxvf apr-iconv-1.2.2.tar.gz [root@txy-server /usr/local/src]# cd apr-iconv-1.2.2/ [root@txy-server /usr/local/src/apr-iconv-1.2.2]# ./configure -prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr [root@txy-server /usr/local/src/apr-iconv-1.2.2]# make && make install
APR链接器是基于OpenSSL这个库来提供对https的支持(性能高),因此须要接下来须要安装这个库。OpenSSL的官网下载地址以下:
到下载页面中复制下载连接:
到Linux上使用wget
命令进行下载:
[root@txy-server /usr/local/src/apr-util-1.6.1]# cd ../ [root@txy-server /usr/local/src]# wget https://www.openssl.org/source/openssl-1.0.2t.tar.gz
解压下载好的OpenSSL源码包,参照以下命令完成编译安装:
[root@txy-server /usr/local/src]# tar -zxvf openssl-1.0.2t.tar.gz [root@txy-server /usr/local/src]# cd openssl-1.0.2t/ [root@txy-server /usr/local/src/openssl-1.0.2t]# ./config --prefix=/usr/local/openssl
与编译其余库不一样的是须要修改上一步操做生成的Makefile
文件,增长一个编译参数:
[root@txy-server /usr/local/src/openssl-1.0.2t]# vim Makefile # 在CFLAG属性的末尾增长-fPIC参数 CFLAG= ... -fPIC
修改完成后,执行编译安装:
[root@txy-server /usr/local/src/openssl-1.0.2t]# make && make install
官网下载地址:
复制下载连接:
到Linux上使用wget
命令进行下载:
[root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
解压下载好的压缩包,并将其解压后的目录重命名:
[root@txy-server /usr/local/src]# tar -zxvf apache-tomcat-9.0.27.tar.gz -C /usr/local [root@txy-server /usr/local/src]# mv ../apache-tomcat-9.0.27/ ../tomcat9
最后是安装tomcat-native组件,tomcat-native组件可让Tomcat访问APR链接器。Tomcat已经自带了tomcat-native,无需额外下载。咱们只须要进行一个安装便可,步骤以下:
# 解压tomcat-native [root@txy-server ~]# tar -zxvf /usr/local/tomcat9/bin/tomcat-native.tar.gz -C /usr/local/src [root@txy-server ~]# cd /usr/local/src/tomcat-native-1.2.23-src/native/ # 配置编译参数,指定APR和OpenSSL库的安装位置,生成Makefile [root@txy-server /usr/local/src/tomcat-native-1.2.23-src/native]# ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl [root@txy-server /usr/local/src/tomcat-native-1.2.23-src/native]# make && make install # 编译安装
tomcat-native的官方文档地址以下:
编辑Tomcat的server.xml
文件,将Connector
的protocol
属性值修改成org.apache.coyote.http11.Http11AprProtocol
,即启用APR链接器。以下示例:
[root@txy-server ~]# vim /usr/local/tomcat9/conf/server.xml <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8443" />
而后在Tomcat的catalina.sh
脚本文件中指定apr的库路径。而且因为开启了APR链接器后,JVM用到的native内存会增大,所以还须要适当调大Metaspace空间:
[root@txy-server ~]# vim /usr/local/tomcat9/bin/catalina.sh # 增长一行JVM参数配置 JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=128m -Djava.library.path=/usr/local/apr/lib"
参数说明:
XX:MetaspaceSize=128m
:将Metaspace空间设置为128M-Djava.library.path=/usr/local/apr/lib"
:指定apr的库路径配置完成后,使用以下命令启动Tomcat服务器:
[root@txy-server ~]# /usr/local/tomcat9/bin/startup.sh
启动Tomcat以后使用以下命令查看Tomcat的启动日志:
[root@txy-server ~]# tail -n10 /usr/local/tomcat9/logs/catalina.out
以下输出了APR字样的信息,表明启用APR链接器成功: