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 of memory, Dedicated Cisco 10-gigabit Ethernet switch
業務邏輯:
帶數據庫查詢業務,數據庫 pgsql,php8+jit
QPS 為 39 萬 +
