現(xiàn)在這個(gè)年代,你要是不懂高并發(fā),你都不好意思說自己是搞互聯(lián)網(wǎng)的!
創(chuàng)新互聯(lián)長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為賀州企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),賀州網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
一、什么是并發(fā),什么是高并發(fā)
并發(fā),兩個(gè)及以上的行為一起發(fā)生,比如你一邊吃飯一邊看電視
高并發(fā),多個(gè)行為(至于是多少,這個(gè)沒有定數(shù),你可以認(rèn)為是100,1000)一起發(fā)生
二、要多久才能處理完這些請(qǐng)求
首先,我們需要明確兩個(gè)基本點(diǎn)
1、處理每個(gè)請(qǐng)求需要耗費(fèi)時(shí)間,哪怕時(shí)間很短
2、服務(wù)資源是有限的,不能一次性處理全部請(qǐng)求
我們可以假定總并發(fā)請(qǐng)求數(shù)量為10000,每個(gè)請(qǐng)求的處理時(shí)間為t秒,服務(wù)器一次性可以處理的請(qǐng)求數(shù)量為n個(gè),那么處理完所有的請(qǐng)求需要用時(shí)為T
T = (10000 / n ) * t
由此可知,如果一次性可以處理10000個(gè)請(qǐng)求,那么總耗時(shí)只需要t秒
如果一次性可以處理1000個(gè)請(qǐng)求,那么總耗時(shí)需要10t秒
。。。
三、什么是QPS
一秒內(nèi)可以處理的請(qǐng)求數(shù)量稱之為服務(wù)器的QPS。
上面我們計(jì)算了10000個(gè)請(qǐng)求的耗時(shí),那么反過來計(jì)算每秒處理多少請(qǐng)求則
QPS = (1 / t ) * n
如果一次性可以處理100個(gè)請(qǐng)求,每個(gè)請(qǐng)求耗時(shí)100毫秒,則qps = 1000
如果一次性可以處理50個(gè)請(qǐng)求,每個(gè)請(qǐng)求耗時(shí)200毫秒,則qps = 250
所以QPS與單個(gè)請(qǐng)求處理時(shí)間以及服務(wù)器一次性可以處理多少請(qǐng)求是成比例關(guān)系的。
四、如何提高QPS
理論上很簡(jiǎn)單,最大化提高服務(wù)器一次性可以處理的請(qǐng)求數(shù)量,最大化提高單個(gè)請(qǐng)求的執(zhí)行速度。
五、單機(jī)QPS的上限是多少呢?
說到單機(jī),你必須明確指出硬性指標(biāo),CPU、內(nèi)存、硬盤、帶寬等
假定 CPU為4核、內(nèi)存8G、硬盤7200轉(zhuǎn)、帶寬10M