容量測(cè)試到底測(cè)什么——一次對(duì)話理清同時(shí)在線和并發(fā)請(qǐng)求
容量測(cè)試到底測(cè)什么一次對(duì)話理清同時(shí)在線和并發(fā)請(qǐng)求和同事討論容量測(cè)試發(fā)現(xiàn)很多人把同時(shí)在線和并發(fā)請(qǐng)求攪在一起。這篇把這段對(duì)話記錄下來(lái)幫你看清容量的本質(zhì)。文章目錄容量測(cè)試到底測(cè)什么一次對(duì)話理清同時(shí)在線和并發(fā)請(qǐng)求一、起點(diǎn)一個(gè)常見(jiàn)的判斷1.1 同事的初始判斷1.2 先搞清兩個(gè)概念二、如果只看同時(shí)在線容量確實(shí)可以非常大2.1 無(wú)狀態(tài)架構(gòu)在線用戶幾乎不花錢(qián)2.2 那有session的系統(tǒng)呢三、但是在線人數(shù)越高并發(fā)請(qǐng)求越高3.1 統(tǒng)計(jì)關(guān)系3.2 容量和并發(fā)是一個(gè)連續(xù)光譜3.3 一個(gè)實(shí)際例子四、并發(fā)請(qǐng)求的真正瓶頸在哪4.1 一個(gè)請(qǐng)求進(jìn)來(lái)的真實(shí)開(kāi)銷(xiāo)4.2 瓶頸清單4.3 一個(gè)并發(fā)請(qǐng)求的開(kāi)銷(xiāo)五、容量測(cè)試到底測(cè)什么5.1 測(cè)的是第一個(gè)被打破的瓶頸5.2 各層監(jiān)控指標(biāo)5.3 常見(jiàn)場(chǎng)景六、總結(jié)6.1 三個(gè)結(jié)論6.2 一句話一、起點(diǎn)一個(gè)常見(jiàn)的判斷1.1 同事的初始判斷同事做政務(wù)系統(tǒng)要搞容量測(cè)試。他的判斷是容量測(cè)試應(yīng)該只和服務(wù)端內(nèi)存有關(guān)系吧session或者jwt也占用不了多少內(nèi)存容量應(yīng)該可以非常大。乍一看沒(méi)毛病——一個(gè)JWT字符串幾百字節(jié)一個(gè)session對(duì)象也就存點(diǎn)用戶信息內(nèi)存開(kāi)銷(xiāo)確實(shí)不大。那同時(shí)在線幾萬(wàn)人內(nèi)存也吃不了多少。容量瓶頸不該是內(nèi)存吧但這個(gè)判斷有一個(gè)隱藏的概念混淆。1.2 先搞清兩個(gè)概念同時(shí)在線容量并發(fā)請(qǐng)求含義多少用戶登錄著、在用系統(tǒng)服務(wù)器同一時(shí)刻在處理多少請(qǐng)求對(duì)服務(wù)器的直接壓力JWT幾乎為零session很小每個(gè)請(qǐng)求吃線程連接CPU瓶頸在哪幾乎沒(méi)有線程池/連接池/CPU/數(shù)據(jù)庫(kù)這是兩個(gè)完全不同的東西。很多開(kāi)發(fā)者嘴上說(shuō)著系統(tǒng)容量要支撐一萬(wàn)用戶實(shí)際上擔(dān)心的是一萬(wàn)用戶同時(shí)點(diǎn)按鈕服務(wù)器扛不扛得住——前者是容量問(wèn)題后者是并發(fā)問(wèn)題。二、如果只看同時(shí)在線容量確實(shí)可以非常大2.1 無(wú)狀態(tài)架構(gòu)在線用戶幾乎不花錢(qián)現(xiàn)在的系統(tǒng)基本都用JWT。用戶登錄后拿到一個(gè)tokentoken存在客戶端瀏覽器localStorage或Cookie。服務(wù)器不存任何東西。用戶登錄 → 服務(wù)器簽發(fā)JWT → 返回給客戶端 ↓ 用戶后續(xù)請(qǐng)求 → 帶上JWT → 服務(wù)器驗(yàn)簽 → 處理請(qǐng)求 ↓ 請(qǐng)求結(jié)束 → 服務(wù)器什么都不留用戶拿不到token時(shí)在瀏覽頁(yè)面、填表單、看數(shù)據(jù)——這段時(shí)間對(duì)服務(wù)器來(lái)說(shuō)這個(gè)用戶不存在。服務(wù)器不給他分配線程、不分配連接、不分配內(nèi)存。所以同時(shí)在線10萬(wàn)人和100人對(duì)服務(wù)器來(lái)說(shuō)沒(méi)區(qū)別——因?yàn)榇蟛糠衷诰€用戶此刻沒(méi)有在發(fā)請(qǐng)求。2.2 那有session的系統(tǒng)呢有同事會(huì)說(shuō)我們的系統(tǒng)用Tomcat的HttpSession每個(gè)用戶在服務(wù)端存一份session這不就占內(nèi)存了嗎算一筆賬。一個(gè)session里實(shí)際存什么數(shù)據(jù)大小估算用戶信息id、姓名、賬號(hào)~200字節(jié)機(jī)構(gòu)信息id、名稱(chēng)~100字節(jié)角色列表幾個(gè)角色I(xiàn)D~50字節(jié)權(quán)限標(biāo)識(shí)如果是角色I(xiàn)D而非逐個(gè)權(quán)限~100字節(jié)合計(jì)不到1KB1000人在線session內(nèi)存不到1MB。10000人在線也就幾MB。跟服務(wù)器動(dòng)輒幾個(gè)G的內(nèi)存比完全可以忽略。所以無(wú)論session還是JWT在線人數(shù)本身都不是瓶頸。同事最初的判斷方向是對(duì)的——容量確實(shí)可以非常大。三、但是在線人數(shù)越高并發(fā)請(qǐng)求越高3.1 統(tǒng)計(jì)關(guān)系到這里同事說(shuō)那容量不是問(wèn)題啊隨便扛。但這里有個(gè)統(tǒng)計(jì)關(guān)系一個(gè)系統(tǒng)在相關(guān)條件不變化同時(shí)在線用戶數(shù)量越多并發(fā)會(huì)越高。100個(gè)人在線同一時(shí)刻可能有5個(gè)人在點(diǎn)按鈕。10000個(gè)人在線同一時(shí)刻可能有500個(gè)人在點(diǎn)。在線人數(shù)上去了并發(fā)請(qǐng)求自然跟著上去。并發(fā)請(qǐng)求數(shù) ≈ 同時(shí)在線人數(shù) × 用戶活躍率 用戶活躍率 用戶在單位時(shí)間內(nèi)發(fā)起請(qǐng)求的概率不同系統(tǒng)的用戶活躍率差異極大系統(tǒng)類(lèi)型用戶活躍率說(shuō)明政務(wù)OA低大部分時(shí)間在看頁(yè)面、填表幾秒點(diǎn)一次電商日常中瀏覽、加購(gòu)物車(chē)、搜索電商秒殺極高所有人同時(shí)點(diǎn)搶購(gòu)按鈕即時(shí)通訊高收發(fā)消息、狀態(tài)同步幾乎一直在請(qǐng)求所以不能脫離用戶行為談容量。容量不是孤立的能掛多少在線用戶而是這些在線用戶產(chǎn)生的高并發(fā)服務(wù)器扛不扛得住。3.2 容量和并發(fā)是一個(gè)連續(xù)光譜容量測(cè)試 并發(fā)測(cè)試 能掛多少在線用戶 在線用戶產(chǎn)生的高并發(fā)扛不扛得住 ←————————————————————————————→ 統(tǒng)計(jì)橋梁用戶活躍率兩者不是對(duì)立的是同一條鏈路上的兩端。容量測(cè)試關(guān)注左端——系統(tǒng)能容納多少在線用戶。并發(fā)測(cè)試關(guān)注右端——這些用戶產(chǎn)生的請(qǐng)求高峰能不能扛。中間的橋梁就是用戶行為模式。3.3 一個(gè)實(shí)際例子某政務(wù)系統(tǒng)預(yù)期5000人同時(shí)在線。做容量測(cè)試時(shí)要算的不是5000個(gè)session占多少內(nèi)存而是5000人在線 × 用戶活躍率假設(shè)10%在同時(shí)操作 500個(gè)并發(fā)請(qǐng)求 ↓ Tomcat默認(rèn)maxThreads200 → 不夠要調(diào)大 數(shù)據(jù)庫(kù)連接池默認(rèn)20 → 遠(yuǎn)遠(yuǎn)不夠要調(diào)大 ↓ 這才是容量測(cè)試要回答的問(wèn)題瓶頸不在5000人在線瓶頸在5000人產(chǎn)生的500個(gè)并發(fā)請(qǐng)求。四、并發(fā)請(qǐng)求的真正瓶頸在哪4.1 一個(gè)請(qǐng)求進(jìn)來(lái)的真實(shí)開(kāi)銷(xiāo)既然瓶頸在并發(fā)請(qǐng)求那一個(gè)請(qǐng)求到底吃服務(wù)器什么資源HTTP請(qǐng)求到達(dá) ↓ Tomcat線程池分配線程maxThreads默認(rèn)200 ↓ 從連接池拿數(shù)據(jù)庫(kù)連接默認(rèn)8~20個(gè) ↓ 執(zhí)行業(yè)務(wù)邏輯CPU計(jì)算、JWT驗(yàn)簽、序列化 ↓ 查數(shù)據(jù)庫(kù)可能等待鎖、等待IO ↓ 返回響應(yīng) ↓ 釋放線程和連接每一環(huán)都可能先于內(nèi)存成為瓶頸。4.2 瓶頸清單瓶頸默認(rèn)上限說(shuō)明線程池Tomcat默認(rèn)200200個(gè)并發(fā)請(qǐng)求就開(kāi)始排隊(duì)跟內(nèi)存無(wú)關(guān)數(shù)據(jù)庫(kù)連接池Druid/HikariCP默認(rèn)8~20拿不到連接的請(qǐng)求要么等要么超時(shí)CPU看核數(shù)JWT驗(yàn)簽、序列化、加解密、業(yè)務(wù)計(jì)算數(shù)據(jù)庫(kù)本身幾百~上千并發(fā)鎖競(jìng)爭(zhēng)、慢查詢(xún)數(shù)據(jù)庫(kù)比應(yīng)用服務(wù)器先扛不住內(nèi)存看配置session/JWT確實(shí)占不了多少4.3 一個(gè)并發(fā)請(qǐng)求的開(kāi)銷(xiāo)不要把一個(gè)用戶在線和一個(gè)請(qǐng)求處理搞混資源一個(gè)在線用戶空閑一個(gè)正在處理的請(qǐng)求線程無(wú)一個(gè)線程??臻g512KB~1MB數(shù)據(jù)庫(kù)連接無(wú)一個(gè)連接連接對(duì)象會(huì)話狀態(tài)內(nèi)存session/JWT ~1KB結(jié)果集、序列化緩沖、臨時(shí)對(duì)象CPU無(wú)JWT驗(yàn)簽、業(yè)務(wù)計(jì)算、序列化1000個(gè)并發(fā)請(qǐng)求光線程棧就吃掉1GB內(nèi)存。而且線程切換的CPU開(kāi)銷(xiāo)比內(nèi)存更致命。所以容量可以非常大這句話對(duì)了一半——在線用戶的容量確實(shí)很大但他們產(chǎn)生的并發(fā)請(qǐng)求打到的瓶頸不在內(nèi)存在別的地方。五、容量測(cè)試到底測(cè)什么5.1 測(cè)的是第一個(gè)被打破的瓶頸容量測(cè)試不是應(yīng)用服務(wù)器內(nèi)存能掛多少session而是從用戶請(qǐng)求到數(shù)據(jù)庫(kù)返回這條鏈路上哪個(gè)環(huán)節(jié)最先斷。不斷加壓觀察哪個(gè)指標(biāo)先異常逐漸增加在線用戶數(shù)或直接加并發(fā)請(qǐng)求 ↓ 監(jiān)控每一層的指標(biāo) ↓ 第一個(gè)先撐不住的環(huán)節(jié) 系統(tǒng)的真實(shí)容量上限5.2 各層監(jiān)控指標(biāo)層次監(jiān)控什么異常表現(xiàn)應(yīng)用服務(wù)器CPU、內(nèi)存、線程數(shù)、GCCPU持續(xù)80%、頻繁Full GCWeb容器活躍線程數(shù)、請(qǐng)求隊(duì)列長(zhǎng)度線程滿、請(qǐng)求排隊(duì)超時(shí)連接池活躍連接數(shù)、等待連接數(shù)連接耗盡、請(qǐng)求等待數(shù)據(jù)庫(kù)活躍會(huì)話數(shù)、鎖等待、慢SQL鎖沖突、SQL變慢網(wǎng)絡(luò)帶寬、連接數(shù)、丟包響應(yīng)時(shí)間飆升5.3 常見(jiàn)場(chǎng)景場(chǎng)景最先斷的環(huán)節(jié)解法方向政務(wù)OA數(shù)據(jù)庫(kù)連接池默認(rèn)太小調(diào)大連接池上限查詢(xún)密集型數(shù)據(jù)庫(kù)慢SQL加索引、優(yōu)化SQL、讀寫(xiě)分離計(jì)算密集型應(yīng)用服務(wù)器CPU加機(jī)器、異步化秒殺類(lèi)數(shù)據(jù)庫(kù)行鎖隊(duì)列削峰、緩存六、總結(jié)6.1 三個(gè)結(jié)論同時(shí)在線和并發(fā)請(qǐng)求是兩個(gè)概念——在線用戶的內(nèi)存開(kāi)銷(xiāo)確實(shí)很小session或JWT都不到1KB可以忽略但在線人數(shù)越高并發(fā)越高——兩者通過(guò)用戶活躍率關(guān)聯(lián)不能脫離用戶行為談容量瓶頸永遠(yuǎn)在并發(fā)請(qǐng)求層——線程池、連接池、CPU、數(shù)據(jù)庫(kù)這些才是容量上限的真正決定因素6.2 一句話容量測(cè)試不是測(cè)能掛多少用戶是測(cè)這些用戶一起點(diǎn)的時(shí)候哪個(gè)環(huán)節(jié)先斷。

相關(guān)新聞

大廠面試,自進(jìn)化 agent 正在成為主流!

大廠面試,自進(jìn)化 agent 正在成為主流!

最近社區(qū)學(xué)員反饋一些Agent 面經(jīng)時(shí),發(fā)現(xiàn)自進(jìn)化 agent正在成為主流!今天從一道字節(jié)算法二面的題開(kāi)始,帶你看懂大廠真正想要什么樣的人才能力。 👔 面試官:“human feedback 是怎么被 agent 消化吸收的?” …

2026/7/30 0:51:10 閱讀更多
AI提示詞黃金模板庫(kù)(覆蓋12大行業(yè)+8類(lèi)任務(wù)):2024最新實(shí)戰(zhàn)驗(yàn)證版,僅開(kāi)放72小時(shí)

AI提示詞黃金模板庫(kù)(覆蓋12大行業(yè)+8類(lèi)任務(wù)):2024最新實(shí)戰(zhàn)驗(yàn)證版,僅開(kāi)放72小時(shí)

更多請(qǐng)點(diǎn)擊: https://codechina.net 第一章:AI提示詞黃金模板庫(kù)總覽與核心設(shè)計(jì)哲學(xué) AI提示詞并非隨意拼湊的語(yǔ)句,而是融合語(yǔ)言學(xué)、認(rèn)知科學(xué)與工程實(shí)踐的精密接口。黃金模板庫(kù)的本質(zhì),是將人類(lèi)意圖結(jié)構(gòu)化、可復(fù)用、可迭代的表達(dá)范式…

2026/7/30 0:51:10 閱讀更多
語(yǔ)音對(duì)話前端全鏈路:WebRTC 采集、流式 ASR 與 TTS 的工程落地

語(yǔ)音對(duì)話前端全鏈路:WebRTC 采集、流式 ASR 與 TTS 的工程落地

語(yǔ)音對(duì)話前端全鏈路:WebRTC 采集、流式 ASR 與 TTS 的工程落地 一、邊說(shuō)邊聽(tīng)的難題:語(yǔ)音 AI 助手的實(shí)時(shí)性與打斷困境 去年我們給一個(gè)車(chē)載語(yǔ)音助手做前端,驗(yàn)收時(shí)產(chǎn)品提了一條:"用戶說(shuō)話中途改主意,要能立刻打斷 AI…

2026/7/30 0:51:10 閱讀更多
微信小程序畢業(yè)設(shè)計(jì)選題指南與30個(gè)創(chuàng)新案例

微信小程序畢業(yè)設(shè)計(jì)選題指南與30個(gè)創(chuàng)新案例

1. 微信小程序畢業(yè)設(shè)計(jì)選題的價(jià)值與趨勢(shì)在當(dāng)今移動(dòng)互聯(lián)網(wǎng)時(shí)代,微信小程序已成為連接用戶與服務(wù)的重要橋梁。根據(jù)最新統(tǒng)計(jì),微信小程序日活躍用戶已突破4億,覆蓋200多個(gè)細(xì)分行業(yè)。對(duì)于計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的畢業(yè)生而言,選擇微信小程序作為…

2026/7/30 1:41:42 閱讀更多
芯片時(shí)序簽核實(shí)戰(zhàn):從STA原理到PrimeTime約束與調(diào)試

芯片時(shí)序簽核實(shí)戰(zhàn):從STA原理到PrimeTime約束與調(diào)試

1. 從靜態(tài)時(shí)序分析到PrimeTime:為什么我們需要它?如果你做過(guò)數(shù)字芯片設(shè)計(jì),不管是前端RTL編碼還是后端物理實(shí)現(xiàn),肯定都聽(tīng)過(guò)“時(shí)序收斂”這個(gè)詞。簡(jiǎn)單來(lái)說(shuō),就是確保芯片里的所有信號(hào),都能在時(shí)鐘規(guī)定的“節(jié)拍”…

2026/7/30 1:41:42 閱讀更多
SQL Server 2008 安裝與 Java JDBC 連接實(shí)戰(zhàn):從環(huán)境搭建到排錯(cuò)指南

SQL Server 2008 安裝與 Java JDBC 連接實(shí)戰(zhàn):從環(huán)境搭建到排錯(cuò)指南

1. 項(xiàng)目概述:從零搭建一個(gè)可用的數(shù)據(jù)訪問(wèn)層 最近在整理一個(gè)遺留的老項(xiàng)目,發(fā)現(xiàn)其核心數(shù)據(jù)存儲(chǔ)依然依賴(lài) SQL Server 2008,而應(yīng)用層則是用 Java 寫(xiě)的。為了后續(xù)的維護(hù)和可能的遷移驗(yàn)證,我需要在一臺(tái)干凈的機(jī)器上重新搭建這套環(huán)境。這…

2026/7/30 1:41:42 閱讀更多
專(zhuān)科生AI論文助手千筆智能體功能解析與使用測(cè)評(píng)

專(zhuān)科生AI論文助手千筆智能體功能解析與使用測(cè)評(píng)

1. 項(xiàng)目背景與核心價(jià)值作為一名在學(xué)術(shù)工具領(lǐng)域深耕多年的研究者,我最近測(cè)試了一款名為"千筆專(zhuān)業(yè)學(xué)術(shù)智能體"的AI論文輔助平臺(tái)。這個(gè)專(zhuān)門(mén)面向?qū)?粕后w的學(xué)術(shù)工具,在當(dāng)前AI寫(xiě)作助手泛濫的市場(chǎng)中顯得尤為特別。與市面上大多數(shù)通用型寫(xiě)作助手不同…

2026/7/30 1:41:42 閱讀更多
哪些關(guān)系型數(shù)據(jù)庫(kù)支持向量檢索?分布式數(shù)據(jù)庫(kù)與 AI 應(yīng)用選型解析 —— 阿里云 PolarDB-X

哪些關(guān)系型數(shù)據(jù)庫(kù)支持向量檢索?分布式數(shù)據(jù)庫(kù)與 AI 應(yīng)用選型解析 —— 阿里云 PolarDB-X

向量檢索正在成為關(guān)系型數(shù)據(jù)庫(kù)支撐 AI 應(yīng)用的重要演進(jìn)方向。所謂"關(guān)系型數(shù)據(jù)庫(kù)支持向量",是指數(shù)據(jù)庫(kù)在原有結(jié)構(gòu)化數(shù)據(jù)能力之上,能夠存儲(chǔ)與檢索由大模型生成的高維向量(embedding),從而支撐相似度檢索、語(yǔ)義搜…

2026/7/30 1:21:13 閱讀更多
[GESP202606 四級(jí)] 掃雷

[GESP202606 四級(jí)] 掃雷

B4557 [GESP202606 四級(jí)] 掃雷 https://www.luogu.com.cn/problem/B4557 中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)2026年6月C四級(jí)講解——掃雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四級(jí)] 掃雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:01:06 閱讀更多