tomcat的运行模式有3种
1)bio(blocking I/O)
即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。是基于JAVA的HTTP/1.1连接器,Tomcat7以下版本在默认情况下是以bio模式运行的。一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。(Tomcat7 或以下,在 Linux 系统中默认使用这种方式)
2)nio(network I/O)
是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为protocol="org.apache.coyote.http11.Http11NioProtocol"
启动后,就可以生效。
利用 Java 的异步请求 IO 处理,可以通过少量的线程处理大量的请求
3)apr(Apache Portable Runtime/Apache可移植运行时)
安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
必须要安装apr和native,直接启动就支持apr。
如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol
即可变为APR运行模式
操作如下:
安装apr
[root@localhost ~]# ls apr-util-1.6.1.tar.gz apr-1.7.0.tar.gz httpd-2.4.39.tar.gz
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.39.tar.gz
[root@localhost ~]# pwd
/root
[root@localhost ~]# tar -zxf apr-1.7.0.tar.gz
[root@localhost ~]# cd apr-1.7.0/
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.7.0]# make && make install
安装apr-util
[root@localhost apr-1.7.0]# cd
[root@localhost ~]# tar -zxf apr-util-1.6.1.tar.gz
[root@localhost ~]# cd apr-util-1.6.1/
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make && make install
安装native
[root@localhost ~]# cd /usr/local/tomcat/bin/
[root@localhost bin]# ls
bootstrap.jar configtest.bat setclasspath.sh tomcat-native.tar.gz
catalina.bat configtest.sh shutdown.bat tool-wrapper.bat
catalina.sh daemon.sh shutdown.sh tool-wrapper.sh
catalina-tasks.xml digest.bat startup.bat version.bat
commons-daemon.jar digest.sh startup.sh version.sh
commons-daemon-native.tar.gz setclasspath.bat tomcat-juli.jar
[root@localhost bin]# tar -zxf tomcat-native.tar.gz
[root@localhost bin]# cd tomcat-native-1.2.18-src/native/
[root@localhost native]# ./configure–with-apr=/usr/local/apr/bin/apr-1-config (如果不加后面的可能会报APR找不到的错误”checkingfor APR… no
configure: error: APR could not be located. Please use the–with-apr option.”
[root@localhost native]# make
[root@localhost native]# make install