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