• 【Tomcat】为Tomcat服务配置本地Apr库以提升性能


    关于 apr 和 apr-util 对 Tomcat 服务的性能提升的说明:

    要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。APR对于Tomcat最大的作用就是socket调度。你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。【本段文字描述引用于 Andy2019 CSDN博客】

    Apache Tomcat 服务在默认情况下的启动,在 logs/catalina.out 日志里面会打印下面一行日志:

    1. 17-Oct-2023 09:11:04.347 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在java.library.path:[/usr/local/apr/lib:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]上找不到
    2. 基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能

    为了解决这个问题,我们需要在服务器上下载和安装 Apr 库(包括apr、apr-iconv、apr-util),以及 Tomcat 自带的tomcat-native。

    这里使用的是Apache官方最新的 Apr 相关源码包,下载地址如下:

    • https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
    • https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
    • https://dlcdn.apache.org//apr/apr-iconv-1.2.2.tar.gz

    tomcat-native包在Tomcat的安装目录的bin目录下,

    1. # ls -ltr tomcat-native.tar.gz
    2. -rwxr--r-- 1 root root 438209 1012 08:55 tomcat-native.tar.gz
    3. # pwd
    4. /root/apache-tomcat-8.5.95/bin

    将下载的 Apr 源码包上传到服务器,并解压、编译和安装:

    1. # tar -xzf apr-1.7.4.tar.gz
    2. # cd apr-1.7.4/
    3. # ./configure --prefix=/usr/local/apr
    4. # make
    5. # make install

     安装成功的截图:  

    安装apr-iconv和apr-util

    1. # tar -xzf apr-iconv-1.2.2.tar.gz
    2. # cd apr-iconv-1.2.2/
    3. # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-iconv
    4. # make
    5. # make install
    6. # tar -xzf apr-util-1.6.3.tar.gz
    7. # cd apr-util-1.6.3/
    8. # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
    9. # make
    10. # make install

    备注:安装apr-util的时候,make如果报下面的错误,需要安装:expat-devel

    1. 1.6.3/include/private -I/usr/local/apr/include/apr-1 -o xml/apr_xml.lo -c xml/apr_xml.c && touch xml/apr_xml.lo
    2. xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
    3. #include
    4. ^
    5. compilation terminated.
    6. make[1]: *** [xml/apr_xml.lo] 错误 1
    7. make[1]: 离开目录“/root/apr-util-1.6.3
    8. make: *** [all-recursive] 错误 1
    # yum install -y expat-devel

    安装成功的截图:

    安装成功后,在系统环境变量(如:/root/.bash_profile)里面增加下面的配置,并写source 使生效。

    1. LD_LIBRARY_PATH=/usr/local/apr/lib
    2. export LD_LIBRARY_PATH

    安装编译tomcat-native

    1. # cd apache-tomcat-8.5.95/bin
    2. # ls -ltr tomcat-native.tar.gz
    3. -rwxr--r-- 1 root root 438209 1012 08:55 tomcat-native.tar.gz
    4. # tar -xzf tomcat-native.tar.gz
    5. # cd tomcat-native-1.2.39-src/native
    6. # ./configure --with-apr=/usr/local/apr
    7. # make
    8. # make install

    安装成功的截图:

    重启Tomcat服务,在catalina.out文件中打印出下面的日志记录,说明Apr环境安装成功

    1. 17-Oct-2023 09:13:31.222 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.2.39]。
    2. 17-Oct-2023 09:13:31.222 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [{4}]。
    3. 17-Oct-2023 09:13:31.222 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]

    参考:

    https://apr.apache.org/download.cgi

    https://cloud.tencent.com/developer/article/1504180

    https: //blog.csdn.net/Andy2019/article/details/79373050

    https://blog.csdn.net/weixin_43930641/article/details/105269092

  • 相关阅读:
    Linux:打包压缩
    【PHP】PHP7中的引用计数
    【自然语言处理(NLP)】基于ERNIE语言模型的文本语义匹配
    【YOLOv5/v7改进系列】引入RT-DETR的RepC3
    腾讯云服务器新用户优惠活动有哪些?腾讯云新用户优惠活动汇总
    百度关键词pc端排名查询易语言代码
    centos 上安装 kafka 与 python 调用
    lintcode 567 · 最大得分 【动态规划 中等 】
    ShowMeBug入驻腾讯会议,开启专业级技术面试时代
    dubbo 服务注册使用了内网IP,而服务调用需要使用公网IP进行调用
  • 原文地址:https://blog.csdn.net/cnskylee/article/details/133876289