從業務角度看並發
一種是嚴格意義上的並發,即所有的用戶在同一時間點做同一件事或操作,這種操作一般指做同一類型的業務。比如,所有用戶同一時刻做並發登陸,同一時刻做表單提交。
另外一種並發是廣義范圍的並發,這種並發與前一種並發的區別是,盡管多個用戶對系統發出了請求或者進行了操作,但是這些請求或都操作可以是相同的,也可以是不同的。比如,在同一時刻有用戶在登錄,有用戶在提交表單。
從服務器的角度看並發
在該系統的運行過程中,把整個運行過程划分為離散的時間點,在每個點上都有一個“同時向服務端發送請求的用戶數”,這個就是所謂的服務器所承受的並發訪問數。
從測試工具的角度看並發
性能測試工具可以1秒模擬成千上萬個請求,那么這些請求的產生同樣分前后順序。就算這些請求被真正的“同時”生產出來,通過網絡傳輸到過服務器時,因為受網絡帶寬、延遲等影響,也無法真正的對服務器構成“同時”請求。從服務器角度,當它接收到並發請求,在處理這些請求時同樣需要分前后順序,因為它處理每個請求的時間極短;每秒可以處理幾千幾萬次請求;所以,我們說它的並發能力是每秒/次。
(注: 這里假設模擬虛擬用戶的服務器和系統服務器為單核CPU的情況下)
系統用戶數和同時在線數
假設有一個網站,注冊用戶才能登錄使用各種功能,如上傳頭像,閱讀專家文章等。該系統有20萬注冊用戶,這就是說有20萬用戶可以使用這個網站的所有功能,20萬就是這個網站的“系統用戶數”,網站有一個在線統計功能,從統計數據中可以看到,同時登錄網站的人數的最高記錄是2萬,就是有2萬人同時用瀏覽器打開着這個網站。2萬就是“同時在線人數”。 那么系統的並發用戶數2萬么?不是的!這2萬只表示在系統最高峰時有這么多用戶登錄了網站,並不代表服務器的實際承受壓力。因為服務器承受壓力還與具體的用戶訪問模式相關,在這2萬用戶中考察某一個時間點對用戶發出請求數,可以會大大縮水。那么,該系統的服務端承受的最大並發訪問數是多少呢?這個取決於業務並發用戶數和業務場景,一般可以通過服務器日志的分析得到。