CentOS 7 Tomcat 8 9 基於APR庫性能優化

Tomcat可使用Apache Portable Runtime來提供卓越的性能及可擴展性,更好地與本地服務器技術的集成。Apache Portable Runtime是一個高度可移植的庫,位於Apache HTTP Server 2.x的核心。APR有許多用途,包括訪問高級IO功能(如sendfile,epoll和OpenSSL),操做系統級功能(隨機數生成,系統狀態等)以及本地進程處理(共享內存,NT管道和Unix套接字)java

這些功能不單單是一個後端集中的技術,還可讓Tomcat成爲通用的網絡服務器,能夠實現與本地的其餘Web技術更好的集成,並使Java成爲一個完整的網絡服務器平臺c++

官方要求 :apache

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)
vim

 

安裝相關依賴包 : 後端

[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.3.tar.gz 
[root@DaMoWang tmp]# cd apr-1.6.3
[root@DaMoWang apr-1.6.3]# ./configure --prefix=/usr/local/apr
[root@DaMoWang apr-1.6.3]# 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.2.tar.gz 
[root@DaMoWang tmp]# cd apr-iconv-1.2.2
[root@DaMoWang apr-iconv-1.2.2]# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
[root@DaMoWang apr-iconv-1.2.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.1.tar.gz 
[root@DaMoWang tmp]# cd apr-util-1.6.1
[root@DaMoWang apr-util-1.6.1]# ./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.1]# 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 4 && 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.17-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.xmltomcat

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

查看日誌驗證服務器

[root@DaMoWang conf]# tail ../logs/catalina.2018-08-18.log 
18-Aug-2018 17:40:36.961 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
18-Aug-2018 17:40:36.997 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
18-Aug-2018 17:40:37.000 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 4032 ms

["http-apr-8080"] ["http-apr-8009"]能夠看到已經以apr協議模式啓動成功
相關文章
相關標籤/搜索