Tomcat8開啟APR執行模式(centos6.5)
阿新 • • 發佈:2018-12-25
Tomcat有三種運營模式:bio、nio、apr,不同模式下Tomcat的執行效率差別比較大。
一、bio(blockingIO)
阻塞式IO,Tomcat6及以前版本預設執行模式,效能非常低下,沒有經過任何優化處理。
二、nio(noblocking IO)
非阻塞式IO,Tomcat7以後的版本預設執行模式,利用java非同步IO技術使Tomcat執行效能有所提升。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8543" />
如果要在Tomcat6開啟NIO模式,直接修改server.xml裡的Connector節點,修改protocol為
org.apache.coyote.http11.Http11NioProtocol,啟動生效。<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8543" />
Tomcat8預設配置啟動完後最後三行日誌如下:
http-nio-8180
ajp-nio-8109
說明預設以nio模式執行。
三、apr(Apache Portable Runtime)
從作業系統級別來解決非同步的IO問題,大幅度的提高效能。
必須要安裝apr和native,直接啟動就支援apr。
安裝apr
apr需要APR庫和OpenSSL相關庫。
yum install apr-devel openssl-devel
安裝native
進入Tomcat的bin目錄,比如:
/opt/soft/tomcat_8180/bin
解壓native原始碼包
native 會被安裝到/usr/local/apr/libtar -zxvf tomcat-native.tar.gz cd tomcat-native-1.1.32-src/jni/native ./configure--with-apr=/usr/bin/apr-1-config--with-java-home="/opt/soft/jdk1.8.0_60" --with-ssl=yes make make install
我們需要把/usr/local/apr/lib/ libtcnative-1.so.0.1.32指向Tomcat可識別路徑。
配置apr包到Tomcat可識別的路徑
15-Apr-2016 22:18:54.209 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent
The APR based Apache Tomcat Native library which allows optimal performance in production environments
was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Tomcat8預設apr是開啟的,配置在server.xml
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
是由於作業系統未安裝apr或者apr路徑未指到Tomcat預設可識別的路徑,則apr模式無法啟動,自動切換啟動nio模式。
cd /usr
mkdir java
cd java/
mkdir packages
cd packages/
mkdir lib
cd lib/
mkdir amd64
cd amd64/
把/usr/local/apr/lib/ libtcnative-1.so.0.1.32軟連結到上面建立的目錄。
ln -s /usr/local/apr/lib/libtcnative-1.so.0.1.32 libtcnative-1.so
ln -s /usr/local/apr/lib/libtcnative-1.so.0.1.32 libtcnative-1.so.0
重新啟動Tomcat看到啟動日誌最後三行
ajp-apr-8109