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

phpsocket.io連接量過大,連接阻塞,部分連接失敗

tomlibao

之前連接量出現(xiàn)過6000-7000,我通過更改php.ini 的memory_limit 從 128m 改為 521m 解決了連接阻塞的問題。

但是現(xiàn)在連接量又升了一個(gè)等級(jí),ESTABLISHED狀態(tài)下的連接成功的數(shù)量就有 9k-1w,導(dǎo)致現(xiàn)在連接阻塞,部分客戶端連接失敗。

phpsocket.io 是單進(jìn)程的,不知道該從哪方面入手讓連接不阻塞。。。求老師指點(diǎn)!

ps:

1、已優(yōu)化過Linux內(nèi)核以及最大連接量。
2、已安裝event擴(kuò)展。
3、已將php.ini 的memory_limit 從 521m 改為 1024m。
4、服務(wù)器具體配置不知道,運(yùn)維負(fù)責(zé),但是不會(huì)差。

2092 1 1
1個(gè)回答

walkor 打賞

phpsocket.io 且是單進(jìn)程的,只能利用一個(gè)cpu,并且內(nèi)部機(jī)制比較復(fù)雜,1w在線估計(jì)已經(jīng)占滿一個(gè)cpu了,很難再優(yōu)化了。

  • tomlibao 2022-02-11

    那能不能通過別的方式來提升這個(gè)連接量呢,比如和原生Workman結(jié)合起來,比如建兩個(gè)相同的服務(wù)(兩個(gè)連接地址)之間進(jìn)行通訊等等?

  • walkor 2022-02-11

    參考這里開啟多個(gè)實(shí)例試下。
    https://github.com/walkor/phpsocket.io/issues/77

    注意,多個(gè)實(shí)例所屬不同的進(jìn)程,進(jìn)程間的變量不是共享的,所以多實(shí)例時(shí)業(yè)務(wù)不能依賴全局?jǐn)?shù)組。

  • tomlibao 2022-02-17

    老大,您發(fā)我的這個(gè)親測(cè)可行,已經(jīng)上線運(yùn)行了,已經(jīng)分擔(dān)了單進(jìn)程單實(shí)例的一些壓力。我在問一個(gè)這個(gè)問題之外的,我能在增加一個(gè)服務(wù)嗎,比如我用gatewayworker開啟一個(gè)ws服務(wù),ws服務(wù)能否和phpsocket.io之間進(jìn)行通訊?

  • walkor 2022-02-17

    可以,用 channel 組件
    gatewayWorker里在 Events的onWorkerStart里建立channel連接。
    phpsocket.io 在 $io->on('workerStart', function()use($io) {} 里建立channel連接。

  • tomlibao 2022-02-17

    但是我用socket.io 推送消息是$io->to()->emit,我用gatewayworker推送消息是Gateway::sendToClient,他們方法不同,一個(gè)需要clientid 一個(gè)需要socket->id 中間推送消息怎么辦?

  • walkor 2022-02-17

    這個(gè)要自己想辦法

年代過于久遠(yuǎn),無法發(fā)表回答
??