查看信息發(fā)現(xiàn)是隊(duì)列的進(jìn)程占用的,但是使用php start.php status 查看的時(shí)候,隊(duì)列只有30M不到的占用
然后系統(tǒng)會(huì)自動(dòng)重啟php進(jìn)程,比如到1.6G,linux系統(tǒng)占用過大了,隊(duì)列會(huì)自動(dòng)重啟,這種應(yīng)該如何排查。。
大概6天的時(shí)間,php占用內(nèi)存從200MB 升到了1G多
http://www.wtbis.cn/doc/webman/queue/redis.html#%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E9%98%9F%E5%88%97%E8%AE%BE%E7%BD%AE%E4%B8%8D%E5%90%8C%E7%9A%84%E6%B6%88%E8%B4%B9%E8%BF%9B%E7%A8%8B
為不同隊(duì)列設(shè)置不同的進(jìn)程消費(fèi),能判斷出哪個(gè)隊(duì)列消耗內(nèi)存
我這個(gè)隊(duì)列下只有一個(gè)消費(fèi)文件,我也檢查了下這個(gè)里面的代碼,沒有發(fā)現(xiàn)明顯的可無限增長的靜態(tài)變量。。關(guān)鍵這個(gè)內(nèi)存增加的比較慢,得好幾天,才能看到變大很多
php start.php status 看業(yè)務(wù)代碼內(nèi)存占用不到20M,沒有問題。
看看是不是業(yè)務(wù)從數(shù)據(jù)庫等存儲(chǔ)讀取了太大的數(shù)據(jù),還有是否使用了什么擴(kuò)展導(dǎo)致。
workerman.log里有些redis報(bào)錯(cuò),有可能是這個(gè)原因?qū)е碌膯幔?br /> pid:1769478 RedisException: socket error on read socket in /vendor/webman/redis-queue/src/RedisConnection.php:64
pid:1769476 RedisException: socket error on read socket in /vendor/webman/redis-queue/src/RedisConnection.php:64