服務吞吐量簡單小模型
阿新 • • 發佈:2022-01-14
問:簡單假設一個服務的處理併發量為CPA, 每個請求的平均處理時間為rpt,則單位時間內的處理吞吐量為多少?
答:單位時間內,單個處理執行緒(worker)的處理量為1/rht,則總的吞吐量為 CPA/rpt。
類比一下:
假設某個紅綠燈路口有CPA個車道,每輛車的平均通過時間為rpt,則單位時間內能通過路口的汽車數量為多少?
單位時間內一個車道的通車量為1/rpt,這個路口有CPA個車道,則總的通車量為CPA/rpt。
以上簡單模型說明:
1)在服務處理併發量一定時,每個請求的平均處理時間越長,吞吐量越差,
越可能出現一些請求長時間等待而得不到處理的情況,請求等待超時乃至放棄的情況越容易發生;
從服務請求方來看
2)當出現請求超時的情形時,首先想到的是減少請求次數,但更應該想到的是降低單個請求的處理時間,比如是否可以優化;
3)當出現請求超時的情形時,除了優化單個請求的處理時間外,也可以考慮把一個請求分解為多個,這樣服務可以見縫插針地處理其他請求。
就比如路人甲上午去銀行營業廳辦事,如果有幾位業務超複雜的人排在路人甲前面,那他想要在上午辦完業務估計沒戲了;
4)請求在傳送的時間上不要過於集中,錯峰出行,體驗更佳,哈哈;
5)最後一招,延長等待超時時間,耐心等吧;
從服務處理方來看:
6)增加處理併發量CPA,可以增加吞吐量;
7)降低請求的處理時間,也可以增加吞吐量,比如:增加單個worker(如執行緒)的處理能力,或者優化資料查詢時間等