為什么按照官方文檔用它與thinkphp3一起使用,workerman部署在不同服務(wù)器上用一段時(shí)間有3個(gè)月以上,時(shí)常性質(zhì)的假死,在重啟后2個(gè)月內(nèi)視乎沒有什么不穩(wěn)定的就是不知道為什么它突然連不上去了,怎么也連不上去了。只能重啟服務(wù)才能再次連上去,搞不懂為什么會(huì)這樣,現(xiàn)在公司業(yè)務(wù)方面很多用了這個(gè)推送,要是時(shí)常會(huì)死掉該考慮換掉它了,這么不穩(wěn)定的。。時(shí)常的假死,不確定原因假死,既沒有日志也沒有報(bào)錯(cuò)信息,就死掉了。連不上去,而那服務(wù)器居然還是開著的。
首先,workerman本身100%穩(wěn)定,前提是業(yè)務(wù)代碼沒有問題,保證event擴(kuò)展已經(jīng)安裝,并且根據(jù)workerman手冊(cè)優(yōu)化了linux內(nèi)核。這就像有一輛好車,但是司機(jī)不行也容易翻車道理一樣。
假死一般是由于業(yè)務(wù)訪問了外部接口或者存儲(chǔ)沒有設(shè)置好超時(shí)時(shí)間,外部接口或者存儲(chǔ)一直沒有返回?cái)?shù)據(jù)導(dǎo)致業(yè)務(wù)傻等,無法正常運(yùn)行。還有業(yè)務(wù)死循環(huán)等都有可能導(dǎo)致服務(wù)出現(xiàn)問題。出現(xiàn)這些情況運(yùn)行php start.php status 能看到busy狀態(tài)的進(jìn)程,根據(jù)手冊(cè)?http://doc.workerman.net/debug/busy-process.html?排查問題。
?
另外如果連接數(shù)超過1000需要安裝event擴(kuò)展,按照workerman手冊(cè)優(yōu)化linux內(nèi)核,否則也會(huì)有連不上的情況。
http://doc.workerman.net/appendices/kernel-optimization.html
?
當(dāng)連不上的時(shí)候,通過top命令和strace -ttp pid命令基本能定位到哪里出了問題。
?
?
?
?
?