SpringBoot中Tomcat調優


Spring Boot中Tomcat調優

1
2
3
4
5
6
server:
tomcat:
accept-count: 100
max-connections: 10000 #最大可被連接數,默認為10000
max-threads: 1000 #最大工作線程數
min-spare-threads: 10 #最小工作線程數

4核8G內存單進程調度線程數800-1000,超過這個並發數之后,將會花費巨大的時間在cpu調度上。

等待隊列長度:隊列做緩沖池用,但也不能無限長,消耗內存,出入隊列也耗cpu。

建議值:

1
2
3
4
5
6
server:
tomcat:
accept-count: 1000
max-connections: 10000
max-threads: 800
min-spare-threads: 100

修改keepalivetimeout和maxKeepAliveRequests開啟長連接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//當Spring容器內沒有TomcatEmbeddedServletContainerFactory這個bean時,會吧此bean加載進spring容器中
@Component
public class WebServerConfiguration 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);
}
});
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM