springBoot2.x内置tomcat调优参数


初学者
发布于
2020-05-18 14:11:17

server:
tomcat:
accept-count: 100
max-connections: 10000 #最大可被连接数,默认为10000
max-threads: 1000 #最大工作线程数
min-spare-threads: 10 #最小工作线程数

4核8G内存单进程调度线程数800-1000,超过这个并发数之后,将会花费巨大的时间在cpu调度上。等待队列长度:队列做缓冲池用,但也不能无限长,消耗内存,出入队列也耗cpu。

建议值:

server:
tomcat:
accept-count: 1000
max-connections: 10000
max-threads: 800
min-spare-threads: 100

修改keepalivetimeout和maxKeepAliveRequests开启长连接

// 当Spring容器内没有TomcatEmbeddedServletContainerFactory这个bean时,会吧此bean加载进spring容器中
public class implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
@Override
public void customize(ConfigurableWebServerFactory configurableWebServerFactory) {
//使用对应工厂类提供给我们的接口定制化我们的tomcat connector
((TomcatServletWebServerFactory)configurableWebServerFactory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();

//定制化keepalivetimeout,设置30秒内没有请求则服务端自动断开keepalive链接
protocol.setKeepAliveTimeout(30000);
//当客户端发送超过10000个请求则自动断开keepalive链接
protocol.setMaxKeepAliveRequests(10000);
}
});
}
}