Tomcat内存优化第五篇 - APR

本文介绍了如何通过APR模式优化Tomcat的并发量,详细阐述了安装依赖库、apr动态库的步骤,以及配置Tomcat的相关设置。在Linux环境下,需要注意动态库路径的指定和SSL配置。优化后,可能需要调整JVM的MetaspaceSize以适应增加的本地内存使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主个人主页
上一篇

前言

apr模式是从系统系别的角度去提高tomcat的并发量 是优化tomcat的首选 但是相比起来其他方式的话是相对稍微麻烦一点的 需要安装很多东西 ~

我们一步一步来看~

安装依赖相关的库

yum install apr-devel
yum install openssl-devel
yum install gcc
yum install make

openssl库要是0.9.7以上版本,APR要在1.2以上版本,可以使用rpm -qa | grep openssl 来查看安装的依赖库版本是不是大于或等于apr要求的版本。

安装apr动态库

进到tomcat的bin目录,解压tomcat-native.tar.gz文件,这个在tomcat bin目录下面是有的 并进入tomcat-native-1.2.7-src/native目录下面,执行 ./configure && make && make install 命令,动态库默认安装在/usr/local/apr/lib目录下

第三步

编辑$TOMCAT_HOME/bin/catalina.sh文件,在虚拟机启动参数JAVA_OPTS中添加java.library.path参数,指定apr库的路径

linux

EXPORT JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

windows

set JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

Tomcat8以下的版本,是需要指定运行的模式的,将protocol从HTTP/1.1改成org.apache.coyote.http11.Http11AprProtocol

要记得7以上版本默认就是nio模式的哦

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" />

运行之后查看日志信息 出现 [“http-apr-8080”] 字样 代表成功

如果出现错误 接着看 没错误就没事了

错误解释

如果没有配置SSL相关参数,并且开启了SSL,启动时会发生org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform异常

关闭SSL

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

SpringBoot 内置 Tomcat 配置 APR


@Bean
    public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
        TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
        if (true) {
            tomcatFactory.setProtocol("org.apache.coyote.http11.Http11AprProtocol");
            tomcatFactory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
                @Override
                public void customize(Connector connector) {
                    Http11AprProtocol handler = (Http11AprProtocol)connector.getProtocolHandler();
                    handler.setXXX();//对tomcat进行对应的设置
                }
            });
        }
        return tomcatFactory;
    }

开启了apr之后,jvm用到的native内存会增大,因此要适当调大Metaspace空间,添加JVM选项:-XX:MetaspaceSize=128m 在jdk8中的时候 元空间 是 直接和 本地内存打交道的

结语

tomcat的介绍大致就到这里啦 后续出一个 在 linux 中 安装apache进行ab压测的文章~ 要记得多参考 多阅读哦 知识都是互相传递的~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值