两个cpu tomcat 200个线程_tomcat网络处理线程模型

本文详细介绍了Tomcat的网络处理线程模型,包括BIO、APR、NIO,并讨论了NIO的处理流程。此外,还讲解了Tomcat的参数调优,如最大线程数、连接数、接受队列等,以及如何根据服务器配置和场景进行线程数调整。同时,文章提供了一个场景案例来帮助理解线程配置的重要性,并给出了使用jmeter进行性能测试的示例。
摘要由CSDN通过智能技术生成

虽然现在springboot微服务纵横都是用的jar包,但是还有很多使用的tomcat。tomcat是servlet的容器,也是springboot默认集成的容器,有必要对他的网络线程模型做一下了解。

7b8971a9490da6a3b3a3eff5f92656a4.png

(一) tomcat网络处理线程模型

  • ① BIO同步Servlet

一个请求,一个工作线程,CPU利用率低,tomcat7以下才使用这种,新版本不再使用,tomcat8默认NIO

47cc3a296933cf4a55d266c0e916ac6f.png
  • ② APR 异步Servlet

apr(Apache Portable Runtime/Apache可以执行运行库),Apache Http服务器的支持库。JINI的行还是调用Apache Http服务器的核心动态链接库来处理文件读取或者网络传输操作,tomcat 默认监听指定路径,如果有apr安全,则自动启用。

68c20fe7f514982aa38de314104ad898.png
  • ③ NIO异步Servlet

tomcat8开始,默认NIO方式,非阻塞读取请求信息,非堵塞处理下一个请求,完全异步。

80bacb910093e1b960e04122c9689fc8.png
  • ④ NIO处理流程
  1. Acceptor接收器接受套接字。
  2. 接收器从缓存中检索nioChannel对象。
  3. Pollerthread将nioChannel注册到它的选择器IO事件中。
  4. 轮询器将nioChannel分配给一个work线程来处理请求。
  5. SocketProcessor完成对请求的处理和返回客户端。
9c9703c229c668a1c5943133878445c5.png
  • ⑤ 参数调优

不能靠经验猜测,需要不断调试,找出适应应用程序的合理配置。

  1. ConnectionTime ,默认 20s,适当调整减少时间。
  2. maxThreads处理连接的最大线程数,默认200,建议增大,但是不是越大越好的。
  3. acceptCount(backlog)等待接收accept的请求数量限制,默认100,建议增大,socket参数 min(accept,、proc/sys/net/core/omaxconn),如果acceptCount设置是100.操作系统设置的10,就按照10来,请求限制就是10。
  4. maxConnections最大连接处理器,默认 nio 1w,apr 8192, 建议不要调整。
  5. </
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值