您好,登錄后才能下訂單哦!
怎么在SpringBoot中調優tomcat?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
springboot一種全新的編程規范,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程,SpringBoot也是一個服務于框架的框架,服務范圍是簡化配置文件。
Spring Boot 能支持的最大并發量主要看其對Tomcat的設置,可以在配置文件中對其進行更改。我們可以看到默認設置中,Tomcat的最大線程數是200,最大連接數是10000。 這個不同SpringBoot 版本可能有所細微差別。本文測試基于Springboot 2.0.7.RELEASE
/** * Maximum amount of worker threads. */ private int maxThreads = 200; /** * Minimum amount of worker threads. */ private int minSpareThreads = 10; /** * Maximum size in bytes of the HTTP post content. */ private int maxHttpPostSize = 2097152; /** * Maximum size in bytes of the HTTP message header. */ private int maxHttpHeaderSize = 0; /** * Whether requests to the context root should be redirected by appending a / to * the path. */ private Boolean redirectContextRoot = true; /** * Whether HTTP 1.1 and later location headers generated by a call to sendRedirect * will use relative or absolute redirects. */ private Boolean useRelativeRedirects; /** * Character encoding to use to decode the URI. */ private Charset uriEncoding = StandardCharsets.UTF_8; /** * Maximum number of connections that the server accepts and processes at any * given time. Once the limit has been reached, the operating system may still * accept connections based on the "acceptCount" property. */ private int maxConnections = 10000; /** * Maximum queue length for incoming connection requests when all possible request * processing threads are in use. */ private int acceptCount = 100;
通過我們查看源碼得知了(org.springframework.boot.autoconfigure.web.ServerProperties)springBoot 內置tomcat 默認配置,現在我們為了在本地體現出效果,我們將配置參數有意調小配置如下進行壓測,同時將壓測接口中設置sleep(2000) 模擬線程沒有釋放。
tomcat: #最小線程數 min-spare-threads: 5 #最大線程數 max-threads: 5 #最大鏈接數 max-connections: 5 #最大等待隊列長度 accept-count: 1
該配置對應壓測
通過壓測100并發 發現異常達到了85% 由于我們配置ReadTimeout 和ConnectTimeout 配置2秒 100個線程同時達到,處理最大線程才1,排隊也是1 導致一個是沒有線程處理請求導致超時一個是排不上隊別拒絕。當我按照本機cup 合理配置后看看壓測情況。優化配置如下:
tomcat: #最小線程數 min-spare-threads: 100 #最大線程數 max-threads: 600 #最大鏈接數 max-connections: 10000 #最大等待隊列長度 accept-count: 1000
看完上述內容,你們掌握怎么在SpringBoot中調優tomcat的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。