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

自定義協(xié)議長鏈接的問題

jbking

自定義了一個通訊協(xié)議,在Gateway中使用,但是發(fā)生一個問題,請指教:

看上去協(xié)議工作正常,而且相關(guān)消息處理過程也工作正常

客戶端會不停的向服務(wù)器發(fā)送心跳包,較長一段時間后,出現(xiàn)了“failed to open stream: Too many open files ”的錯誤警告

此時只有一個連接的

沒有數(shù)據(jù)庫或其他緩存操作

不知道,出現(xiàn)這種情況,我應(yīng)該從什么地方開始找問題

3033 3 0
3個回答

walkor 打賞

Too many open files ,
進程打開的文件句柄數(shù)超過系統(tǒng)設(shè)置,你的情況應(yīng)該是進程打開或者接受了很多socket鏈接。

如果你知道報這個錯的進程pid,通過 lsof -nPp 進程pid 查看進程打開了哪些文件句柄

另外linux系統(tǒng)默認系統(tǒng)文件打開數(shù)比較低,建議根據(jù)workerman手冊優(yōu)化下Linux內(nèi)核,否則無法承載大并發(fā)
http://doc3.workerman.net/appendices/kernel-optimization.html

  • 暫無評論
jbking

@walkor

我檢查是發(fā)現(xiàn),我自定義的協(xié)議中,如果收到的buffer長度跟收到的消息長度一樣時,我直接return這個包的長度了,對比websocket協(xié)議,發(fā)現(xiàn)正常接收數(shù)據(jù)時,都是處理完decode后,return 0,不知道跟這個有沒有關(guān)系呢?

  • 暫無評論
walkor 打賞

return 長度是正確的做法。
websocket協(xié)議比較特殊,有個握手過程,握手的包不需要處理,所以return 0了。這個你不用關(guān)心

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??