社区
高性能WEB开发
帖子详情
Http11Protocol 与 Http11NioProtocol的性能比较
yuqilin001
2011-11-08 02:36:18
org.apache.coyote.http11.Http11Protocol 与 org.apache.coyote.http11.Http11NioProtocol的性能比较?请高手指点。
...全文
1043
1
打赏
收藏
Http11Protocol 与 Http11NioProtocol的性能比较
org.apache.coyote.http11.Http11Protocol 与 org.apache.coyote.http11.Http11NioProtocol的性能比较?请高手指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
商科程序员
2011-11-08
打赏
举报
回复
区别主要在NIO上.就是普通IO与NIO的区别.我觉得性能差不多,可能普通IO还更高点.但并发量NIO肯定会更大.因为它用的线程少.
【高并发】高并发环境下如何优化Tomcat
性能
?看完我懂了!
写在前面 Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的
性能
会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的
性能
呢? Tomcat运行模式 Tomcat的运行模式有3种。 1.bio模式 默认的模式,
性能
非常低下,没有经过任何优化处理和支持。 2.
nio
模式 利用java的异步io护理技术,noblocking IO技术。要想运行在该模式下,则直接修改server.xml里的Connector节点,修改
pro
tocol
为如下配置。
pro
tocol
=org.apache.coyote.
http
11
.
Http
11
Nio
Pro
tocol
重启
apr库(tomcat优化) for native 20
apr-1.4.2.tar.gz apr-iconv-1.2.1.tar.gz apr-util-1.3.10.tar.gz tomcat-native-1.1.20-src.tar.gz 包含以上是个包,只要应用于LINUX下,用于TOMCAT优化apr连接器使用的 说明下关于TOMCAT调优一种建议 1 Connector介绍 1.1 Connector的种类 Tomcat源码中与connector相关的类位于org.apache.coyote包中,Connector分为以下几类:
Http
Connector, 基于
HTTP
协议,负责建立
HTTP
连接。它又分为BIO
Http
Connector与
NIO
Http
Connector两种,后者提供非阻塞IO与长连接Comet支持。 AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与
http
服务器之间通信专门定制的协议,能提供较高的通信速度和效率。如与Apache服务器集成时,采用这个协议。 APR
HTTP
Connector, 用C实现,通过JNI调用的。主要提升对静态资源(如HTML、图片、CSS、JS等)的访问
性能
。现在这个库已独立出来可用在任何项目中。Tomcat在配置APR之后
性能
非常强劲。 tomcat默认采用的BIO模型,在几百并发下
性能
会有很严重的下降。tomcat自带还有
NIO
的模型,另外也可以调用APR的库来实现操作系统级别控制。
NIO
模型是内置的,调用很方便,只需要将上面配置文件中
pro
tocol
修改成org.apache.coyote.
http
11
.
Http
11
Nio
Pro
tocol
,重启即可生效。上面配置我已经改过了,默认的是
HTTP
/1.1。
apr库(tomcat优化)
apr-1.4.2.tar.gz apr-iconv-1.2.1.tar.gz apr-util-1.3.10.tar.gz tomcat-native-1.1.20-src.tar.gz 包含以上是个包,只要应用于LINUX下,用于TOMCAT优化apr连接器使用的 说明下关于TOMCAT调优一种建议 1 Connector介绍 1.1 Connector的种类 Tomcat源码中与connector相关的类位于org.apache.coyote包中,Connector分为以下几类:
Http
Connector, 基于
HTTP
协议,负责建立
HTTP
连接。它又分为BIO
Http
Connector与
NIO
Http
Connector两种,后者提供非阻塞IO与长连接Comet支持。 AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与
http
服务器之间通信专门定制的协议,能提供较高的通信速度和效率。如与Apache服务器集成时,采用这个协议。 APR
HTTP
Connector, 用C实现,通过JNI调用的。主要提升对静态资源(如HTML、图片、CSS、JS等)的访问
性能
。现在这个库已独立出来可用在任何项目中。Tomcat在配置APR之后
性能
非常强劲。 tomcat默认采用的BIO模型,在几百并发下
性能
会有很严重的下降。tomcat自带还有
NIO
的模型,另外也可以调用APR的库来实现操作系统级别控制。
NIO
模型是内置的,调用很方便,只需要将上面配置文件中
pro
tocol
修改成org.apache.coyote.
http
11
.
Http
11
Nio
Pro
tocol
,重启即可生效。上面配置我已经改过了,默认的是
HTTP
/1.1。
linux 下的 mod_jk.so
很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的
性能
基本上就取决于Tomcat处理
HTTP
请求的connector模块的
性能
。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector模块在整个tomcat中所处的位置,最后对connector做了详细的源代码分析。并且我们以
Http
11
Nio
Pro
tocol
为例详细说明了tomcat是如何通过实现
Pro
tocol
Handler接口而构建connector的。
Tomcat面试专题及答案.pdf
tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。 maxThreads=”150”//Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。默认值 200。可以根据机器的时期
性能
和内存 大小调整,一般可以在 400-500。最大可以在 800 左右。 minSpareThreads=”25”—Tomcat 初始化时创建的线程数。默认值 4。如果 当前没有空闲线程,且没有超过 maxThreads,一次性创建的空闲线程数量。 Tomcat 初始化时创建的线程数量也由此值设置。 maxSpareThreads=”75”–一旦创建的线程超过这个值,Tomcat 就会关闭不 再需要的 socket 线程。默认值 50。一旦创建的线程超过此数值,Tomcat 会关 闭不再需要的线程。线程数可以大致上用 “同时在线人数每秒用户操作次数系 统平均操作时间” 来计算。 acceptCount=”100”—-指定当所有可以使用的处理请求的线程数都被使用 时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值 10。如果当前可用线程数为 0,则将请求放入处理队列中。这个值限定了请求 队列的大小,超过这个数值的请求将不予处理。 connectionTimeout=”20000” –网络连接超时,默认值 20000,单位:毫 秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。
nio
:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。 指定使用
NIO
模型来接受
HTTP
请求
pro
tocol
=”org.apache.coyote.
http
11
.
Http
11
Nio
Pro
tocol
” 指定使用
NIO
模型 来接受
HTTP
请求。默认是 BlockingIO,配置为
pro
tocol
=”
HTTP
/1.1” acceptorThreadCount=”2” 使用
NIO
模型时接收线程的数目 aio(
nio
.2):JDK7 开始支持,异步非阻塞 IO。 apr:Tomcat 将以 JNI 的形式调用 Apache
HTTP
服务器的核心动态链接库来 处理文件读取或网络传输操作,从而大大地 提高 Tomcat 对静态文件的处理性 能。 其他配置 max
Http
HeaderSize="8192"
http
请求头信息的最大程度,超过此长度的部分 不予处理。一般 8K。 URIEncoding="UTF-8" 指定 Tomcat 容器的 URL 编码格式。 disableUploadTimeout="true" 上传时是否使用超时机制 enableLookups="false"--是否反查域名,默认值为 true。为了提高处理能力, 应设置为 false compression="on" 打开压缩功能 compressionMinSize="10240" 启用压缩的输出内容大小,默认为 2KB noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用 压缩 compressableMimeType="text/html,tex
高性能WEB开发
25,985
社区成员
4,366
社区内容
发帖
与我相关
我的任务
高性能WEB开发
高性能WEB开发
复制链接
扫一扫
分享
社区描述
高性能WEB开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章