久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

springboot tomcat最大線程數與最大連接數解析

瀏覽:119日期:2023-03-07 09:46:44
springboot tomcat最大線程數與最大連接數

首先看看springboot內置的tomcat,該如何配置這兩個參數

# 在配置文件中添加如下內容# tomcat最大線程數,默認為200server.tomcat.max-threads=200# tomcat最大連接數,默認為10000(網上的說法)server.tomcat.max-connections=300如何理解上面兩個參數

為了方便理解,我這里使用了springboot編寫了一個簡單了的服務,包含一個模擬登錄的接口,并使用jmeter進行測試,不了解jmeter如何使用的朋友可以翻看我的歷史文章。部分代碼如下

// java 代碼@RestController@RequestMapping('/user')public class UserController { @Autowired private UsersRepository usersRepository; @PostMapping('/login') public String login(Users user) throws InterruptedException {// 這里將線程掛起3秒,方便觀察結果Thread.sleep(3000);Users checkUser = usersRepository.findByName(user.getName());if(checkUser == null) return '用戶不存在';if(!checkUser.getPassword().equals(user.getPassword())) return '密碼錯誤';System.out.println('用戶:' + checkUser.getName() + ',登錄成功');return '登錄成功'; }}

接下來,設置jmeter中的線程數,分別測試以下場景返回的結果

注意:我在java代碼中添加將線程掛起3秒的語句,實際的響應時間應該減去3秒

場景1:并發請求數 <= tomcat最大線程數200

springboot tomcat最大線程數與最大連接數解析

設置jmeter并發請求數量為200

springboot tomcat最大線程數與最大連接數解析

結果統計

結論:可以看到200個請求,平均響應時間為(3156-3000)=156ms,最小響應時間為23ms,最大響應時間為336ms,響應結果正常。

場景2:并發數 >tomcat最大線程數200,以下我將jmeter線程數設置為201,再來看看結果

springboot tomcat最大線程數與最大連接數解析

看了下,平均值,最小值好像沒什么異常,但是最大值卻去到了5606毫秒,接近6S的時間。為什么會有個接近6S的最大值,原因很簡單,因為tomcat最大的線程數為200,201的并發請求量,超出了并發處理的數量200,多出來的1個請求,需要等待某個處理中的請求處理完成。

這里我翻看了jmeter中大部分的http請求,驗證了我的想法。大部分的http請求,響應時間都是3000多毫秒,只有最后一個響應的請求,響應的時間為5606毫秒,截圖如下

springboot tomcat最大線程數與最大連接數解析

場景3:請求數超過最大連接數300,這里將jmeter并發線程數設置為600

springboot tomcat最大線程數與最大連接數解析

異常數量由原本的百分之0變成37.45%

springboot tomcat最大線程數與最大連接數解析

可以看到有大量的沒有正常響應的http請求,原因很簡單,因為超過了tomcat設置的最大連接數,服務器拒絕了該次請求的連接

SpringBoot中修改tomcat最大連接數、最大線程數、最大等待數1)maxThreads(最大線程數)

每一次HTTP請求到達Web服務器,Web服務器都會創建一個線程來處理該請求,該參數決定了應用服務同時可以處理多少個HTTP請求,tomcat默認為200;

2)accepCount(最大等待數)

當調用Web服務的HTTP請求數達到tomcat的最大線程數時,還有新的HTTP請求到來,這時tomcat會將該請求放在等待隊列中,這個acceptCount就是指能夠接受的最大等待數,默認100.如果等待隊列也被放滿了,這個時候再來新的請求就會被tomcat拒絕(connection refused);

3)maxConnections(最大連接數)

這個參數是指在同一時間,tomcat能夠接受的最大連接數。一般這個值要大于maxThreads+acceptCount。

根據公司用戶量及機器配置信息,公司的最大連接數、最大線程數和最大等待數優化為:

#最大連接數 server.tomcat.max-connections=2000 #最大線程數 server.tomcat.max-threads=1000 #最大等待數 server.tomcat.accept-count=800

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 盐池县| 宜春市| 司法| 台南县| 聂拉木县| 留坝县| 旅游| 巴林右旗| 清流县| 井陉县| 隆林| 江陵县| 建平县| 安顺市| 乌兰县| 咸阳市| 白沙| 大足县| 嘉荫县| 临洮县| 太和县| 虎林市| 鄂托克前旗| 平度市| 尼木县| 黄骅市| 新田县| 吐鲁番市| 秭归县| 乌兰县| 伊金霍洛旗| 三台县| 玉林市| 阳山县| 洛阳市| 崇仁县| 余江县| 托里县| 上杭县| 蓬溪县| 潞西市|