Workerman支持多少並發
並發概念太模糊,這裡以兩種可以量化的指標並發連接數和並發請求數來說明。
並發連接數是指伺服器當前時刻一共維持了多少TCP連接,而這些連接上是否有數據通訊並不關注,例如一台消息推送伺服器上可能維持了百萬的設備連接,由於連接上很少有數據通訊,所以這台伺服器上負載可能幾乎為0,只要內存足夠,還可以繼續接受連接。
並發請求數一般用QPS(伺服器每秒處理多少請求)來衡量,而當前時刻伺服器上有多少個TCP連接並不十分關注。例如一台伺服器只有10個客戶端連接,每個客戶端連接上每秒有1W個請求,那麼要求服務端需要至少能支撐10*1W=10W每秒的吞吐量(QPS)。假設10W吞吐量每秒是這台伺服器的極限,如果每個客戶端每秒發送1個請求給服務端,那麼這台伺服器能夠支撐10W個客戶端。
並發連接數受限於伺服器內存,一般24G內存workerman伺服器可以支持大概120W並發連接。
並發請求數受限於伺服器CPU處理能力,一台24核心workerman伺服器可以達到45W每秒的吞吐量(QPS),實際值根據業務複雜度以及程式碼質量有所變化。
注意
高並發場景必須安裝event擴展,參考安裝配置章節。另外需要優化Linux內核,尤其是進程打開文件數限制,請參考附錄內核調優章節。
壓測數據
數據來自第三方權威壓測機構 techempower.com 第20輪壓測
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf
伺服器配置:
Total Cores 14,Total Threads 28,32 GB內存,專用Cisco 10-gigabit乙太網交換機
業務邏輯:
帶資料庫查詢業務,資料庫pgsql,php8+jit
QPS為39萬+