tomcat8.x parseHost bug导致的性能损耗

现象

  • 通过jfr抓取的deoptimization event发现有很多parseHost相关的jit退化

阅读更多

tomcat应用部署过程(一)

从前两篇文章中,我们熟悉了tomcat核心组件的启动过程。但是应用是如何部署的,何时部署的,这些过程仍然没有解释清楚。这篇文章,我们主要分析下应用部署的过程。要厘清楚调用关系,最快的莫过于火焰图。

阅读更多

tomcat bind/listen/acceptor过程

tomcat bind/listen/acceptor过程

经典的网络server,一般有如下的流程:

阅读更多

tomcat配置connectionTimeout

The number of milliseconds this Connector will wait, after accepting a connection, for the request URI line to be presented. Use a value of -1 to indicate no (i.e. infinite) timeout. The default value is 60000 (i.e. 60 seconds) but note that the standard server.xml that ships with Tomcat sets this to 20000 (i.e. 20 seconds). Unless disableUploadTimeout is set to false, this timeout will also be used when reading the request body (if any).

阅读更多

tomcat的线程池为什么不回落?

现象

从监控上看,tomcat的线程busy的非常少,线程池使用率很低,但是线程池里的线程的个数却很多。

难道tomcat的线程池没有回落机制吗?

阅读更多

tomcat队列满了之后会发生什么?

tomcat线程池满了之后,请求会堆积在队列里。队列满了之后会发生什么?

队列长度

首先需要看下队列长度,使用tomcat默认的线程池,采用的是无界队列:

阅读更多

tomcat-stringcache

StringCache是啥?

​ 众所周知,http协议是文本协议,因此传输过程中的ByteChunk和CharChunk最终都会转为String。tomcat为了减少内存占用,减少对GC的影响,提出了StringCache的解决方案。

阅读更多