暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Tomcat连接池参数优化

zayki 2023-12-16
134

Caused by: java.lang.RuntimeException: org.apache.jasper.JasperException: org.apache.coyote.http11.HeadersTooLargeException: An attempt was made to write more data to the response headers than there was room available in the buffer. Increase maxHttpHeaderSize on the connector or write less data into the response headers.

Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Request和Response对象传给Engine。当Engine处理完请求后,也会通过Connector将响应返回给客户端。
可以说,Servlet容器处理请求,是需要Connector进行调度和控制的,Connector是Tomcat处理请求的主干,因此Connector的配置和使用对Tomcat的性能有着重要的影响。
默认参数
注: Connector 通常在%HOME_TOMCAT%/conf/servser.xml 文件内

正常参数

配置参数调试

优化参数

参数详解
1)port
注:代表Tomcat端口号,默认8080。

2)protocol
注:协议类型,可选类型有4种,BIO(阻塞型IO),NIO,NIO2和APR。

3)maxThreads
注:连接器创建处理请求线程的最大数目,处理同事请求的最大数目,默认值为200。

4)minSpareThreads
注:线程的最小运行数目,这些始终保持运行。如果未指定,默认值为10。

5)acceptCount
注:最大队列长度。一般与maxThreads相同,默认为100。

6)maxConnections
注:在任何给定的时间内,服务器将接受和处理的最大连接数。当这个数字已经达到时,服务器将接受但不处理,等待进一步连接。NIO与NIO2的默认值为10000,APR默认值为8192。

7)connectionTimeout
注:当请求已经被接受,但未被处理,也就是等待中的超时时间。单位为毫秒,默认值为60000。通常情况下设置为30000。

8)maxHttpHeaderSize
注:请求和响应的HTTP头的最大大小,以字节为单位指定。如果没有指定,这个属性被设置为8192(8 KB)。

9)tcpNoDelay
注:如果为true,服务器socket会设置TCP_NO_DELAY选项,在大多数情况下可以提高性能。缺省情况下设为true。

10)compression
注:是否启用gzip压缩,默认为关闭状态。这个参数的可接受值为“off”(不使用压缩),“on”(压缩文本数据),“force”(在所有的情况下强制压缩)。

11)compressionMinSize
注:如果compression=“on”,则启用此项。被压缩前数据的最小值,也就是超过这个值后才被压缩。如果没有指定,这个属性默认为“2048”(2K),单位为byte。

12)disableUploadTimeout
注:这个标志允许servlet Container在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上传的时候更长的超时时间。如果没有指定,设为false。

13)enableLookups
注:关闭DNS反向查询。

14)URIEncoding
注:URL编码字符集。

作者:flyjar
链接:https://www.jianshu.com/p/2186305da7ef
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论