從操做系統級別來解決異步的IO問題,大幅度的提升性能。
1.生產環境安裝優化步奏:
tomcat 版本:
apache-tomcat-7.0.68.tar.gz
jdk版本:
java-1.7.0_55.tarjava
2.下載相關軟件包:apache
cd /aliyun/soft/
rz -y
apr-1.5.0.tar.gz
apr-util-1.5.3.tar.gz
apr-iconv-1.2.1.tar.gz
tomcat-native-1.1.34-src.tar.gzvim
3.yum安裝須要的依賴:
yum install -y apr-devel openssl-devel gcc openssl (須要的話得安裝)tomcat
4.編譯安裝apr軟件包
tar xf apr-1.5.0.tar.gz -C /aliyun/
cd /aliyun/apr-1.5.0/
./configure --prefix=/aliyun/apr
make &&make install
5.編譯安裝apr-iconv軟件包
tar xf /aliyun/soft/apr-iconv-1.2.1.tar.gz -C /aliyun/
cd /aliyun/apr-iconv-1.2.1/
./configure --prefix=/aliyun/apr-iconv --with-apr=/aliyun/apr
make && make install
echo $?
6.編譯安裝apr-util 軟件包
tar xf /aliyun/soft/apr-util-1.5.3.tar.gz -C /aliyun/
cd /aliyun/apr-util-1.5.3/
./configure --prefix=/aliyun/apr-util --with-apr=/aliyun/apr --with-apr-iconv=/aliyun/apr-iconv/bin/apriconv
make &&make install
echo $?
7.編譯安裝tomcat-native 軟件包
tar xf /aliyun/soft/tomcat-native-1.1.34-src.tar.gz -C /aliyun/
cd /aliyun/tomcat-native-1.1.34-src/jni/native/
./configure --with-apr=/aliyun/apr --with-java-home=/aliyun/java-1.7.0
make &&make install
echo $?
8.將編譯安裝tomcat-native生成的/usr/local/apr/lib加入系統環境變量而且修改server.xml配置文件
echo "export LD_LIBRARY_PATH=/usr/local/apr/lib " >>/etc/profile
source /etc/profile
vim /aliyun/tomcat7/conf/server.xml
[root@tomcat02 native]# cat -n /aliyun/tomcat7/conf/server.xml|sed -n "24p"併發
24 <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
9.檢查生效狀況異步
/aliyun/tomcat7/bin/shutdown.sh /aliyun/tomcat7/bin/startup.sh cat /aliyun/tomcat7/logs/tomcat02.2016-05-25.out|grep -E "1.5.0" INFO: Loaded APR based Apache Tomcat Native library 1.1.34 using APR version 1.5.0.
到此安裝完畢:
簡單測試得知:apr鏈接創建的速度會有50%以上的提高。ide
tomcat中間件的啓動運行模式有分爲3種,能夠在啓動運行控制檯和啓動日誌中看出.默認模式bio(阻塞IO) 缺點:能很是低下,沒有通過任何優化處理和支持,併發量高時,線程數較多,浪費資源.
nio(異步IO)利用Java的異步IO處理,能夠經過少許的線程處理大量的請求.
apr(系統解決IO阻塞)從操做系統層面解決io阻塞問題,必須手動安裝apr和native包.性能