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

GatewayWorker Summary 顯示的內(nèi)存沒有變小

liamhao

在進(jìn)行壓力測(cè)試時(shí),只是測(cè)試在線保持?jǐn)?shù)量,客戶端和服務(wù)端并沒有發(fā)送任何數(shù)據(jù):

這里是我簡(jiǎn)單寫的壓測(cè)程序:https://github.com/liamhao/websocket-pressure-test,只要測(cè)試機(jī)內(nèi)存允許,支持百萬連接壓測(cè)。

第一步:

先通過php start.php start啟動(dòng)GatewayWorker,這時(shí)輸入php start.php status查看進(jìn)程狀態(tài),結(jié)果如下圖所示,Summary字段顯示內(nèi)存占用18M
截圖

第二步

開始?jí)簻y(cè),當(dāng)連接數(shù)達(dá)到37萬左右時(shí),Summary字段顯示內(nèi)存占用2052M
截圖

第三步

停止壓測(cè),將連接數(shù)將為0時(shí),Summary字段仍然顯示內(nèi)存占用2052M,并沒有降低。即使等了很長(zhǎng)時(shí)間,也是如此:
截圖

問題

為什么連接斷開了,仍然會(huì)有這么大的內(nèi)存占用?里面的數(shù)據(jù)到底是什么?在以上的基礎(chǔ)上,不重啟GatewayWorker的情況下,進(jìn)行第二次壓測(cè),內(nèi)存并不會(huì)在2052M的基礎(chǔ)上繼續(xù)增加。想知道具體原因和實(shí)現(xiàn)的原理,謝謝。

1694 2 1
2個(gè)回答

walkor 打賞

對(duì),php內(nèi)存管理器申請(qǐng)的內(nèi)存不一定會(huì)歸還操作系統(tǒng),留著復(fù)用以提升性能。所以下次以同樣的客戶端數(shù)量壓測(cè)時(shí)內(nèi)存不會(huì)增長(zhǎng)或者說不會(huì)明顯增長(zhǎng),因?yàn)槟遣糠诸A(yù)留內(nèi)存被復(fù)用了。

如果你想釋放這部分內(nèi)存,在start_gateway.php里加一個(gè)定時(shí)器,定時(shí)調(diào)用gc_mem_caches()試下。

$gateway->onWorkerStart = function(){
    Workerman\Timer::add(10, function(){
        gc_collect_cycles();
        gc_mem_caches();
    });
};
  • liamhao 2022-04-29

    那這些留著復(fù)用的內(nèi)存里有存儲(chǔ)什么數(shù)據(jù)嗎?還是說只是占著這些內(nèi)存,但內(nèi)容都是空的?

  • liamhao 2022-04-29

    以及第一次連接時(shí),這些內(nèi)存是用來存儲(chǔ)哪些數(shù)據(jù)用的?

  • walkor 2022-04-29

    留著復(fù)用的內(nèi)存沒有存數(shù)據(jù)。

  • liamhao 2022-04-29

    留著復(fù)用我明白了,那第一次啟動(dòng),連接后,第一次漲到2G時(shí),那時(shí)的內(nèi)存里存的是什么?

  • walkor 2022-04-29

    連接對(duì)象

  • liamhao 2022-04-29

    ok,感謝。剛剛把 linux 中 /etc/security/limits.conf 文件的 nofile 改的太大了,導(dǎo)致 ssh 登錄不上了... ??

  • liziyu 2022-04-29

    搭順車請(qǐng)教下:比如說服務(wù)器物理內(nèi)存總共有4G,如果這2G占用了,意味著服務(wù)器內(nèi)的其它的應(yīng)用最多也只能用剩余的2G內(nèi)存空間了,這樣理解對(duì)嗎?

  • liamhao 2022-04-29

    @liziyu 我覺得是這樣的,那2G是php占用的,不可能給系統(tǒng)別的進(jìn)程用

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