現在這個年代,你要是不懂高併發,你都不好意思說自己是搞互聯網的!
一、什麼是併發,什麼是高併發
併發,兩個及以上的行爲一起發生,比如你一邊吃飯一邊看電視
高併發,多個行爲(至於是多少,這個沒有定數,你可以認爲是100,1000)一起發生
二、要多久才能處理完這些請求
首先,我們需要明確兩個基本點
1、處理每個請求需要耗費時間,哪怕時間很短
2、服務資源是有限的,不能一次性處理全部請求
我們可以假定總併發請求數量爲10000,每個請求的處理時間爲t秒,服務器一次性可以處理的請求數量爲n個,那麼處理完所有的請求需要用時爲T
T = (10000 / n ) * t
由此可知,如果一次性可以處理10000個請求,那麼總耗時只需要t秒
如果一次性可以處理1000個請求,那麼總耗時需要10t秒
。。。
三、什麼是QPS
一秒內可以處理的請求數量稱之爲服務器的QPS。
上面我們計算了10000個請求的耗時,那麼反過來計算每秒處理多少請求則
QPS = (1 / t ) * n
如果一次性可以處理100個請求,每個請求耗時100毫秒,則qps = 1000
如果一次性可以處理50個請求,每個請求耗時200毫秒,則qps = 250
所以QPS與單個請求處理時間以及服務器一次性可以處理多少請求是成比例關係的。
四、如何提高QPS
理論上很簡單,最大化提高服務器一次性可以處理的請求數量,最大化提高單個請求的執行速度。
五、單機QPS的上限是多少呢?
說到單機,你必須明確指出硬性指標,CPU、內存、硬盤、帶寬等
假定 CPU爲4核、內存8G、硬盤7200轉、帶寬10M