国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

請(qǐng)求集中在某些進(jìn)程

現(xiàn)象

有時(shí)候我們通過(guò)命令php start.php status 看到,請(qǐng)求被集中在特定的某些進(jìn)程中處理,其它進(jìn)程完全空閑。

搶占機(jī)制

workerman多個(gè)進(jìn)程獲取連接的方式默認(rèn)搶占式的,也就是說(shuō)當(dāng)客戶(hù)端有連接發(fā)起時(shí),所有空閑的進(jìn)程都有機(jī)會(huì)去獲取這個(gè)連接,快者先得。到底誰(shuí)快,是由操作系統(tǒng)內(nèi)核調(diào)度決定的。操作系統(tǒng)可能會(huì)優(yōu)先選取最近一次使用的進(jìn)程獲得cpu使用權(quán),因?yàn)閏pu寄存器里可能還存在上個(gè)進(jìn)程的上下文信息,這可以減少上下文切換開(kāi)銷(xiāo)。所以當(dāng)業(yè)務(wù)足夠快的時(shí)候或者壓測(cè)過(guò)程中,更容易出現(xiàn)連接集中被某些進(jìn)程處理的情況,因?yàn)檫@個(gè)策略可以避免頻繁的進(jìn)程切換,性能往往是最優(yōu)的,并不是什么問(wèn)題。

輪詢(xún)機(jī)制

workerman可以通過(guò)設(shè)置 $worker->reusePort = true;的方式將獲取連接的方式改為輪詢(xún)的方式,輪詢(xún)的方式內(nèi)核會(huì)將連接近似平均的方式分配給所有進(jìn)程,這樣所有的進(jìn)程將會(huì)一起處理請(qǐng)求。

誤區(qū)

很多開(kāi)發(fā)者認(rèn)為所有進(jìn)程都參與請(qǐng)求處理性能越好,實(shí)際上不一定。當(dāng)業(yè)務(wù)足夠簡(jiǎn)單時(shí),參與處理請(qǐng)求的進(jìn)程數(shù)越趨近于cpu核心數(shù)服務(wù)器吞吐量越高。例如4核服務(wù)器,進(jìn)程數(shù)設(shè)置為4時(shí),helloworld壓測(cè)QPS一般是最高的。如果參與處理的進(jìn)程數(shù)超過(guò)cpu核數(shù)太多,進(jìn)程上下文開(kāi)銷(xiāo)越大,性能反而越差。而一般帶數(shù)據(jù)庫(kù)業(yè)務(wù)時(shí),進(jìn)程數(shù)設(shè)置為cpu核數(shù)的3倍-6倍性能可能會(huì)更好。

編輯于2024-03-13 17:37:19 完善本頁(yè) +發(fā)起討論
贊助商