廣播系統測試總結
系統介紹
作為基礎服務,這套系統目前是公司效能要求最高的服務啦,這套系統分三個服務分別以A,B,C代替
A:服務於gateway,B
B:服務於A,gateway
C:服務於其他服務,B
測試環境
centos7
20核,40processor
125G
萬兆網絡卡,40佇列
測試步驟
情景一:
目的是通過工具和各種服務混搭,測出單程序A的壓力到底是多少
物理機a部署1個A和2個C, 物理機b部署5個B,物理機c部署12個gateway tool,執行緒數各開啟20個(合理數目,不建議再大)
A: recv 15w/s, send 75w/s, cpu佔比35%,各執行緒佔比80%~95%壓力較大,單程序傳送上限不要超過70w/s,開啟spdlog基本沒影響
rx tx rxkB txkB
15w 76w 1w 4.8w
B: A_recv 7.5w/s,cpu佔比6%,不開啟send spdlog情況, 單程序cpu不超過80%,開啟後,總cpu佔比15%,各程序cpu佔比190%
rx tx rxkB txkB
75w 500 5w 70
機器b中途遇到問題,cpu不高,檢視頻寬,丟包引數,網絡卡引數,sokect快取等都沒有任何錯誤,最後發現是軟中斷過於集中一個cpu導致,效能一直上不去
情景二:
我們知道A的壓力後,a機器上部署合理數目A,分擔壓力,然後測出單程序B的壓力
物理機a部署2個A和2個C, 物理機b部署1個B,物理機C部署12個gateway tool,和8個C tool
A: recv 15w/s, send 35w/s, cpu佔比20%,各執行緒佔比50%~60%
B: C_recv 20w/s, A_recv 12w/s, send 100w/s,cpu佔比7%, 各執行緒佔比20%~50%,未開spdlog,開啟spdlog除了send的選項,基本沒影響,再開啟send選項之後cpu迅速2000+%
rx tx rxkB txkB
32w 100w 4w 15w
B: C_recv 10w/s, A_recv 12w/s, send 70w/s,cpu佔比25%, 各執行緒佔比80%~95%壓力較大,開啟spdlog情況,單程序傳送上限不要超過60w/s
C: recv 20w/s,send 30w/s, 各執行緒佔比40%~50%,開啟spd後recv 15w/s, send 20w/s,各執行緒佔比80%~95%壓力較大,單程序傳送上限不要超過20w/s
情景三:
各個程序效能已經得到,接下來測試機器壓力
物理機a部署2個A和2個C, 物理機b部署5個B,物理機C部署12個gateway tool,和8個C tool
A
rx tx rxkB txkB
20w 100w 1w 6.5w
B
rx tx rxkB txkB
132w 230w 12w 36w
總結
測試過程中要開啟監測工具,從軟體層面檢視是否丟包
C壓力在發包和spdlog,單程序傳送量最大不要超過20w
B壓力在發包和spdlog,單程序傳送量最大不要超過60w
A壓力在於發包,單程序傳送量最大不要超過70w
最終的目的是:
根據壓力測試找出瓶頸
根據流量,計算出每個機器部署的片數,和需要的機器數
目前線上流量百萬級,並且毫無壓力