tomcat性能优化之apr通道安装配置(linux环境)
1.tomcat的3种运行模式
tomcat支持的三种接收请求的处理方式:BIO,NIO,APR
BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即:java.io包及其子包);Tomcat 7以下版本默认情况下是以BIO模式运行的,由于每个请求的都要创建一个线程来处理,因此 线程的开销较大,不能处理高兵的场景,在三种模式中性能也最低效;启动Tomcat看日志如下表示为BIO模式;
NIO模式:是Java SE 1.4以后续版本提供的一种新的I/O操作方式(即:java.nio包及其子包);是一个基于 缓存区
、并提供非阻塞I/O操作的Java API,它拥有比传统的I/O操作(BIO)更好的并发运行性能;
APR模式:简单理解就是,从操作系统级别解决异步IO问题,大幅度的提高服务器的处理合相应性能,也是Tomcat运行高并发应用的首选模式;
三种模式的特征
模式 | 默认运行版本 | 处理方式 |
---|---|---|
BIO运行模式 | Tomcat7或以下版本 | 一个线程处理一个请求;缺点:并发量高是,线程数较多,浪费资源; |
NIO模式 | Tomct8版本 | 利用Java的异步IO处理,可通过少量的线程处理大量请求; |
APR运行模式 | Tomcat7 或 8 在win7或以上系统中默认使用(Linux需要进行配置) | 从操作系统层面解决IO阻塞问题; |
tomcat的运行模式可以在tomcat启动时通过Catalina.out启动日志查看:
Starting ProtocolHandler ["http-bio-8080"] ## BIO模式
Starting ProtocolHandler ["http-nio-8080"] ## NIO模式
Starting ProtocolHandler ["http-apr-8080"] ## APR模式
2.Tomcat APR模式配置(Linux环境)
自Tomcat 8.5 版本开始,Tomcat就移除了对BIO的支持,改用了NIO的方式因此NIO的配置方式不再进行赘述,如有需要请自行百度。
- **APR模式:**简单来说,就是从操作系统级别解决异步IP问题,大幅度的提高服务器的处理和响应性能,也是Tomcat运行高并发应用的首选模式;
- 启动这种模式需要安装一些依赖库,下面进行详细说明:
配置要求:
-
Centos
-
gcc, expat-devel,perl-5
-
apr,apr-until
-
tomcat-native,openssl
-
tomcat8.5+
-
防火墙关闭
systemctl status firewalld #检查防火墙状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld.service #设置开机禁用防火墙
-
安装wget
yum -y install wget
-
安装jdk
jdk请自行到oracle官网下载
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
配置:
cd /usr/local
tar -zxvf jdk-8u271-linux-x64.tar.gz
mv jdk1.8.0_271/ /usr/local/jdk
vi /etc/profileexport JAVA_HOME=/usr/local/jdk
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
source /etc/profile
-
安装gcc, expat-devel,perl-5
yum install -y gcc
yum install -y expat-devel
yum install -y wget
cd /usr/local
wget http://mirrors.ustc.edu.cn/CPAN/src/5.0/perl-5.30.1.tar.gz
tar -xzf perl-5.30.1.tar.gz
cd perl-5.30.1
./Configure -des -Dprefix=$HOME/localperl
make
make install -
安装apr
cd /usr/local
wget https://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz
tar -zxvf apr-1.6.5.tar.gz
cd apr-1.6.5
./configure --prefix=/usr/local/apr && make && make install -
安装apr-util
cd /usr/local
wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install -
安装zlib
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --shared && make test && make install
cp zutil.h /usr/local/include
cp zutil.c /usr/local/include -
安装/升级openssl
cd /usr/local
wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
tar -zxvf openssl-1.0.2l.tar.gz
cd openssl-1.0.2l
./config shared zlib #配置
make && make install #解析和安装
make clean #清除掉配置编译的一些文件
rm -rf openssl* #删除 可以保留
mv /usr/bin/openssl /usr/bin/openssl.bak #复制老的做备份
mv /usr/include/openssl /usr/include/openssl.bak #复制老的做备份
ln -sf /usr/local/ssl/bin/openssl /usr/bin/openssl #建立新的软链接 usr/local/ssl/为安装路径
ln -sf /usr/local/ssl/include/openssl /usr/include/openss #建立新的软链接 usr/local/ssl/为安装路径
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf #写入openssl库文件的搜索路径
ldconfig -v #使修改后的/etc/ld.so.conf生效
openssl version #查看新版号 -
安装tomcat-native
cd /usr/local
wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.14/source/tomcat-native-1.2.14-src.tar.gz
tar -zxvf tomcat-native-1.2.14-src.tar.gz
cd tomcat-native-1.2.14-src/native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk/ --with-ssl=/usr/local/ssl/ && make && make install
本人安装的tomcat为tomcat8.5+,对应tomcat-native的最低版本为1.2.14如果版本过低请移步:
http://tomcat.apache.org/download-native.cgi自行下载,下载时请注意与openssl的版本对照,如需下载openssl请移步:https://www.openssl.org/source/old/进行下载。
3.总结
本篇博文主要对Linux环境下Tomcat APR模式的配置进行了梳理,希望能对你有帮助。