我用gatewayworker時(shí)為了適應(yīng)高并發(fā)將gateway進(jìn)程調(diào)成了cpu核的4_3倍,將bussiness進(jìn)程調(diào)為cpu核的4_1倍,我的cpu是雙核,現(xiàn)在可支持并發(fā)量上去了,但是剛剛看文檔才發(fā)現(xiàn)上面說(shuō)的是gateway調(diào)成cpu核數(shù)相等,business調(diào)成cpu核數(shù)的三倍,瞬間懵了,請(qǐng)問(wèn)大神這是什么情況,還有就是這個(gè)cpu核數(shù)是看我服務(wù)器的cpu核數(shù)吧,那我是要將gateway進(jìn)程調(diào)成2嗎?我這邊是阻塞式IO業(yè)務(wù),含有數(shù)據(jù)庫(kù)連接和客戶(hù)端IO
gateway進(jìn)程是完全異步非阻塞的,不需要開(kāi)很多,cpu核數(shù)即可,businessWorker是處理業(yè)務(wù)的進(jìn)程,業(yè)務(wù)里如果有很多阻塞的操作可以適當(dāng)開(kāi)多一些進(jìn)程,如果阻塞少就開(kāi)少一些,沒(méi)有強(qiáng)制規(guī)定開(kāi)多少。
但是不管怎樣,高并發(fā)一定要安裝event擴(kuò)展,并且按照workerman手冊(cè)優(yōu)化linux內(nèi)核。切記。
我已經(jīng)安裝了event擴(kuò)展并優(yōu)化了內(nèi)核,但是還是會(huì)出現(xiàn)并發(fā)問(wèn)題,于是我就把gateway進(jìn)程加大了,暫時(shí)解決了問(wèn)題,請(qǐng)問(wèn)這是為什么?還有一個(gè)問(wèn)題,請(qǐng)問(wèn)硬件設(shè)備是如何連接服務(wù)端的?是gateway這邊通過(guò)設(shè)置成類(lèi)似于$gateway = new Gateway("tcp://0.0.0.0:6666");然后硬件那邊自己設(shè)置,服務(wù)端的onmassage()就可以收到信息了嗎?
不清楚你說(shuō)的并發(fā)問(wèn)題是什么問(wèn)題,出現(xiàn)問(wèn)題后php start.php status 截圖下,截圖截全。
硬件通過(guò)socket連接new Gateway時(shí)初始化的端口,服務(wù)端Events.php里onMessage里收發(fā)消息