Tomcat可以使用Apache Portable Runtime来提供卓越的性能及可扩展性,更好地与本地服务器技术的集成。Apache Portable Runtime是一个高度可移植的库,位于Apache HTTP Server 2.x的核心。APR有许多用途,包括访问高级IO功能(如sendfile,epoll和OpenSSL),操作系统级功能(随机数生成,系统状态等)以及本地进程处理(共享内存,NT管道和Unix套接字)

这些功能不仅仅是一个后端集中的技术,还可以让Tomcat成为通用的网络服务器,可以实现与本地的其他Web技术更好的集成,并使Java成为一个完整的网络服务器平台

官方要求 :

APR 1.2+ development headers (libapr1-dev package)
OpenSSL 1.0.2+ development headers (libssl-dev package)
JNI headers from Java compatible JDK 1.4+
GNU development environment (gcc, make)

安装相关依赖包 : 

[root@DaMoWang ~]# yum -y install gcc gcc-c++ libtool* autoconf automake expat-devel perl perl-devel

安装apr :

[root@DaMoWang ~]# cd /tmp/
[root@DaMoWang tmp]# wget http://mirrors.shu.edu.cn/apache/apr/apr-1.6.3.tar.gz
[root@DaMoWang tmp]# tar xf apr-1.6..tar.gz
[root@DaMoWang tmp]# cd apr-1.6.
[root@DaMoWang apr-1.6.]# ./configure --prefix=/usr/local/apr
[root@DaMoWang apr-1.6.]# make && make install

安装apr-iconv :

[root@DaMoWang tmp]# wget http://mirrors.shu.edu.cn/apache/apr/apr-iconv-1.2.2.tar.gz
[root@DaMoWang tmp]# tar xf apr-iconv-1.2..tar.gz
[root@DaMoWang tmp]# cd apr-iconv-1.2.
[root@DaMoWang apr-iconv-1.2.]# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
[root@DaMoWang apr-iconv-1.2.]# make && make install

安装apr-util :

[root@DaMoWang tmp]# wget http://mirrors.shu.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@DaMoWang tmp]# tar xf apr-util-1.6..tar.gz
[root@DaMoWang tmp]# cd apr-util-1.6.
[root@DaMoWang apr-util-1.6.]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
[root@DaMoWang apr-util-1.6.]# make && make install

安装openssl :

[root@DaMoWang tmp]# wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
[root@DaMoWang tmp]# tar xf openssl-1.1.0h.tar.gz
[root@DaMoWang tmp]# cd openssl-1.1.0h
[root@DaMoWang openssl-1.1.0h]# ./config --prefix=/usr/local/openssl
[root@DaMoWang openssl-1.1.0h]# make -j && make install

安装tomcat-native :

[root@DaMoWang openssl-1.1.0h]# cd /usr/local/tomcat/bin/
[root@DaMoWang bin]# tar xf tomcat-native.tar.gz
[root@DaMoWang bin]# cd tomcat-native-1.2.-src/native/
[root@DaMoWang native]# ./configure --with-java-home=/usr/local/jdk10/ --with-ssl=/usr/local/openssl
[root@DaMoWang native]# make && make install

添加环境变量 :

[root@DaMoWang native]# vim /etc/profile.d/jdk.sh
export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH
[root@DaMoWang native]# source /etc/profile.d/jdk.sh
# 也可在catalina.sh中修改
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m" -Djava.library.path=/usr/local/apr/lib

配置server.xml

[root@DaMoWang native]# cd /usr/local/tomcat/conf/
[root@DaMoWang conf]# vim server.xml
<Connector port="" protocol="HTTP/1.1"
connectionTimeout=""
redirectPort="" />
# 修改为
<Connector port="" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout=""
redirectPort="" />
================================================================================
<Connector port="" protocol="AJP/1.3" redirectPort="" />
# 修改为
<Connector port=""
protocol="org.apache.coyote.ajp.AjpAprProtocol"
redirectPort="" />

查看日志验证

[root@DaMoWang conf]# tail ../logs/catalina.--.log
-Aug- ::36.961 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
-Aug- ::36.997 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
-Aug- ::37.000 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in ms ["http-apr-8080"] ["http-apr-8009"]可以看到已经以apr协议模式启动成功

CentOS 7 Tomcat 8 9 基于APR库性能优化的更多相关文章

  1. Tomcat 8.5 基于 Apache Portable Runtime(APR)库性能优化

    Tomcat可以使用Apache Portable Runtime来提供卓越的性能及可扩展性,更好地与本地服务器技术的集成.Apache Portable Runtime是一个高度可移植的库,位于Ap ...

  2. 基于Yahoo网站性能优化的34条军规及自己的见解

    1.尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容,这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通过减少页面中的元素可以减少HTTP请求的次数,这是提高网页速 ...

  3. 理解Tomcat架构、启动流程及其性能优化

    PS:but, it's bullshit ! 备注:实话说,从文档上扒拉的,文档地址:在每一个Tomcat安装目录下,会有一个webapps文件夹,里面有一个docs文件夹,点击index.html ...

  4. 基于GruntJS前端性能优化

    在本文中,如何使用GruntJS为了使治疗简单的前端性能优化自己主动,我写了一个完整的样本放在Github上.能够參考一下.关于Yahoo的前端优化规则请參考:Best Practices for S ...

  5. [看图说话] 基于Spark UI性能优化与调试——初级篇

    Spark有几种部署的模式,单机版.集群版等等,平时单机版在数据量不大的时候可以跟传统的java程序一样进行断电调试.但是在集群上调试就比较麻烦了...远程断点不太方便,只能通过Log的形式,进行分析 ...

  6. (转)centos 7 Tomcat 8.5 的安装及生产环境的搭建调优

    原文:https://www.cnblogs.com/linhankbl/articles/9149804.html#top JVM菜鸟进阶高手之路七(tomcat调优以及tomcat7.8性能对比) ...

  7. freeswitch APR库哈希表

    概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性. 哈希表在开发中应用的非常广泛,主要场景是对查询效率要求较高的逻辑,是典型的空间换时间的数据结构实现. 大多数 ...

  8. freeswitch APR库线程读写锁

    概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性. 线程读写锁在多线程服务中有重要的作用.对于读数据比写数据频繁的服务,用读写锁代替互斥锁可以提高效率. 由于A ...

  9. Tomcat性能优化及JVM内存工作原理

    Java性能优化原则:代码运算性能.内存回收.应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化:避免过多循环嵌套.调用和复杂逻辑. Tomcat调优主要内容如下: 1. ...

随机推荐

  1. 《C和指针》---指针

    内存和地址 计算机的内存由许多的位(bit)组成,每个位可以容纳值0或1. 由于一个位所能表示的范围太有限,所以通常许多位合成一组作为一个单元. 这些位置的每一个都被称为字节(byte),每个字节包含 ...

  2. GCD Counting-树形DP

    GCD Counting 思路: 预处理  每个权值的素因子.问题转化为  以同一个素数作为因子 最长的链, 树形DP求解,ans 由 此点的 最长子链 + 次长子链 相加得到, 然后再更新最长子链 ...

  3. Hibernate 单向一对多映射

    单向 n-1: 单向 n-1 关联只需从 n 的一段访问 1 的一端 此处 Order 类和 Customer 类,其中 Order 类需要引用 Customer 类 代码: public class ...

  4. NOIP-扫雷游戏

    题目描述 扫雷游戏是一款十分经典的单机小游戏.在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有 ...

  5. ko.js学习一

    一.KO是一个MVVM框架 声明式绑定 (Declarative Bindings):使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上. UI界面自动刷新 (Automatic U ...

  6. springboot 启动排除某些bean 的注入

    问题: 最近做项目的时候,需要引入其他的jar.然后还需要扫描这些jar里的某些bean.于是使用注解:@ComponentScan这个注解直接指定包名就可以,它会去扫描这个包下所有的class,然后 ...

  7. DAG---矩阵嵌套问题

    矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c, ...

  8. Oracle 备份与恢复

    在进行生产服务器升级.或更换数据库服务器.搭建测试环境时,需要对生产数据库进行备份以及将来可能的还原. 1.expdp导出 expdp DMS version directory=DATA_PUMP_ ...

  9. FTP服务器匿名登录

       ftp需要开通对匿名用户.本地用户.及虚拟用户的支持.并且特别对虚拟用户中的(stu.teacher.admin)分别授予不同的权限.  1.创建多层目录,然后挂载 2.配置yum源文件 3.安 ...

  10. yum安装mysql5.7

    [root@ycj ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm //下载安装 ...