3种关系线程模型:http://itindex.net/detail/50701-tomcat-bio-nio
BIO:同步堵塞
NIO:异步堵塞 拿号等着
AIO:类似点餐系统,异步非堵塞
aio说明
要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,
然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。
但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。
APR对于Tomcat最大的作用就是socket调度。
你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,
但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。
如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。
http://apr.apache.org/download.cgi
http://www.itnpc.com/news/web/146319508766675.html
http://tomcat.apache.org/download-native.cgi 下载
aio安装步骤
1)安装apr
tar zxvf apr-1.5.2.tar.gz
cd /root/soft/apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
2)安装apr-iconv
tar -zxvf apr-iconv-1.2.1.tar.gz
cd /root/soft/apr-iconv-1.2.1
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make && make install
3)安装apr-util
tar zxvf apr-util-1.5.4.tar.gz
cd /root/soft/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
make && make install
4)安装tomcat-native
cd /root/soft/apache-tomcat-7.0.69/bin
tar zxvf tomcat-native.tar.gz
cd /root/soft/apache-tomcat-7.0.69/bin/tomcat-native-1.1.33-src/jni/native
./configure --with-apr=/usr/local/apr --with-java-home=/root/soft/jdk1.8.0_101/
make && make install
5)添加环境变量
vim /etc/profile #在他文件末尾处添加下面的变量
# apr ma
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
执行
source /etc/profile
此时环境变量生效果
6)修改server.xml
配置文件中protocol修改成org.apache.coyote.http11.Http11AprProtocol
// Tomcat的四种基于HTTP协议的Connector性能比较 // 按照顺序命名为 NIO, HTTP, POOL, NIOP <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443"/> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> <Connector executor="tomcatThreadPool" port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector executor="tomcatThreadPool" port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" />
7)重新启动tomcat
结论:500并发压测,aio和nio性能比对
nio
aio