从操作系统级别来解决异步的IO问题,大幅度的提高性能。
1.生产环境安装优化步奏:
tomcat 版本:
apache-tomcat-7.0.68.tar.gz
jdk版本:
java-1.7.0_55.tar
2.下载相关软件包:
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.gz
3.yum安装需要的依赖:
yum install -y apr-devel openssl-devel gcc openssl (需要的话得安装)
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%以上的提升。
tomcat中间件的启动运行模式有分为3种,可以在启动运行控制台和启动日志中看出.默认模式bio(阻塞IO) 缺点:能非常低下,没有经过任何优化处理和支持,并发量高时,线程数较多,浪费资源.
nio(异步IO)利用Java的异步IO处理,可以通过少量的线程处理大量的请求.
apr(系统解决IO阻塞)从操作系统层面解决io阻塞问题,必须手动安装apr和native包.
本文转自 wjw555 51CTO博客,原文链接:http://blog.51cto.com/wujianwei/2056456