Tomcat的运行模式

tomcat的三种运行模式

tomcat

Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 



这三种模式的不同之处如下:

●BIO: 
 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。 
Tomcat7或以下,在Linux系统中默认使用这种方式。

●NIO: 
 利用Java的异步IO处理,可以通过少量的线程处理大量的请求。 
Tomcat8在Linux系统中默认使用这种方式。 
Tomcat7必须修改Connector配置来启动:

  1. <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
  2. connectionTimeout="20000" redirectPort="8443"/>

●APR: 
  即Apache Portable Runtime,从操作系统层面解决io阻塞问题。 
Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。 
Linux如果安装了apr和native,Tomcat直接启动就支持apr。(安装方法:http://www.cnblogs.com/nb-blog/p/5278502.html

官方对这三种的区别的详细说明:

  1. Java Blocking Connector Java Nio Blocking Connector APR/native Connector
  2. BIO NIO APR
  3. Classname AjpProtocol AjpNioProtocol AjpAprProtocol
  4. Tomcat Version 3.x onwards 7.x onwards 5.5.x onwards
  5. Support Polling NO YES YES
  6. Polling Size N/A maxConnections maxConnections
  7. Read Request Headers Blocking Sim Blocking Blocking
  8. Read Request Body Blocking Sim Blocking Blocking
  9. Write Response Blocking Sim Blocking Blocking
  10. Wait for next Request Blocking Non Blocking Non Blocking
  11. Max Connections maxConnections maxConnections maxConnections

Tomcat启动的时候,可以通过log看到Connector使用的是哪一种运行模式:

  1. Starting ProtocolHandler ["http-bio-8080"]
  2. Starting ProtocolHandler ["http-nio-8080"]
  3. Starting ProtocolHandler ["http-apr-8080"]

例如:

本文参考社区文章

时间: 2024-10-11 02:18:04

Tomcat的运行模式的相关文章

修改Tomcat Connector运行模式,优化Tomcat运行性能

Tomcat是一个小型的轻量级应用服务器,也是JavaEE开发人员最常用的服务器之一.不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio.nio.apr三种运行模式,那么这三种运行模式有什么区别呢,我们又如何修改Tomcat Connector的运行模式来提高Tomcat的运行性能呢? 下面,我们先大致了解Tomcat Connector的三种运行模式. bio bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传

查看Tomcat的运行模式

确认Tomcat的运行模式大概有三种方式 通过Tomcat配置管理员用户,查看Server Status 通过tomcat的log ---推荐 通过server.xml查看 Tomcat8在Linux系统中默认使用NIO方式. 通过Tomcat配置管理员用户,查看Server Status 在conf/ tomcat-users.xml下添加用户: 1 <role rolename="manager"/> 2 <role rolename="manager-

开启Tomcat APR运行模式,优化并发性能

Tomcat支持三种接收请求的处理方式:BIO.NIO.APR 1>.BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统JavaI/O操作(即Java.io包及其子包).Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低.启动tomcat看到如下日志,表示使用的是BIO模式:  2>.NIO模式:是javaSE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包).

配置Tomcat apr运行模式

tomcat中一共有三种运行模式,分别是:bio,nio,apr bio是阻塞式IO操作,使用的是传统的java i/o处理方式,对于每一个请求都要创建一个线程来进行处理,所以开销较大不适合处理高并发的场景 nio是基于java中非阻塞IO操作的API实现,比传统的i/o处理方式有更高的并发运行性能,启动时可以看到: apr是从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能,也是Tomcat生产环境运行的首选方式 目前Tomcat 8.x默认情况下全部是运行在nio模式下,而apr

tomcat的运行模式(3种)

Tomcat支持三种接收请求的处理方式:BIO.NIO.APR (1)      BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统JavaI/O操作(即Java.io包及其子包).Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低. (2)      NIO模式:是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包).是一个基于缓冲区.并能提供非阻塞

Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态. 1)bio 默认的模式,性能非常低下,没有经过任何优化处理和支持. 2)nio 利用java的异步io护理技术,no blocking IO技术. 想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为  <Connector port="80&quo

Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. Tomcat7或以下,在Linux系统中默认使用这种方式. NIO: 利用Java的异步IO处理,可以通过少量的线程处理大量的请求. Tomcat8在Linux系统中默认使用这种方式. Tomcat7必须修改Connector配置来启动: <Connector port="8080" pro

tomcat运行模式

Tomcat Connector的三种不同的运行模式性能相差很大 这三种模式的不同之处如下: BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. Tomcat7或以下,在Linux系统中默认使用这种方式. NIO: 利用Java的异步IO处理,可以通过少量的线程处理大量的请求. Tomcat8在Linux系统中默认使用这种方式. Tomcat7必须修改Connector配置来启动: <Connector port="8080" protocol="

tomcat运行模式(bio,aio,apr)

tomcat中间件的启动运行模式有分为3种,可以在启动运行控制台和启动日志中看出.默认模式bio(阻塞IO)  缺点:能非常低下,没有经过任何优化处理和支持,并发量高时,线程数较多,浪费资源.nio(异步IO)利用Java的异步IO处理,可以通过少量的线程处理大量的请求.apr(系统解决IO阻塞)从操作系统层面解决io阻塞问题,必须手动安装apr和native包. 1.bio模式(默认) [[email protected] conf]# tailf  ../logs/catalina.out