高并发高可用高性能

17. Tomcat调优

2020-03-06  本文已影响0人  强某某

Tomcat网络处理线程模型

一个请求,一个工作线程,CPU利用率低

apr(Apache Portable Runtime/Apache可移植运行库),是Apache HTTP服务器的支持库。
JNI的形式调用Apache HTTP服务器的核心动态链接库在处理文件读取或网络传输操作。Tomcat默认监听指定路径,如果apr安装,则自动启用。

Tomcat8开始,默认NIO方式,因为上面的APR还需要自己处理维护动态链接库很麻烦。

NIO处理流程(Tomcat8)

  1. 接受器接受套接字
  2. 接收器从缓存中检索nioChannel对象
  3. Pollerthread将nioChannel注册到它的选择器IO事件
  4. 轮询器将nioChannel分配给一个work线程来处理请求
  5. SocketProcessor完成对请求的处理和返回


    4.png

Tomcat参数调优

5.png 6.png

所以,同样程序部署在windows和linux上面效果有区别,因为linux前面如图还有一个连接队列也可以缓存一些连接,所以linux理论上同样设置可以缓存更多的连接

启动方式:java -jar web-demo-1.1.0.jar --server.tomcat.ax-connections=1 -- server.tommcat.max-thread=1 --server.tomcat.acceptCount=1

7.png

整体架构

8.png

一般不用tomcat记录日志性能低而且不擅长,nginx专业中间件,可以限流并记录日志等

上一篇下一篇

猜你喜欢

热点阅读