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

webman1.5出現(xiàn)內(nèi)存泄漏,如何定位

wuxian

webman1.5出現(xiàn)內(nèi)存泄漏

webman框架運行了有一年,后面不知道從什么時候開始,內(nèi)存一直在增加,不釋放,按照之前walkor提供的方法檢測,心跳檢測接口都出現(xiàn)內(nèi)存變化,各位大佬,有什么好的方法可以定位嗎
檢查內(nèi)存變化中間件

public function process(Request $request, callable $handler) : Response
    {
        $response = $handler($request);
        $worker = App::worker();
        if (!$worker || $worker->id !== 0) {
            return $response;
        }
        static $memory = 0;

        if ($memory === 0) {
            $memory = memory_get_usage(true);
        }
        $usage = memory_get_usage(true);
        $diff = $usage - $memory;

        $checkLimit = 10 * 1024;
        if ($diff > $checkLimit) {
            $uri = $request->uri();
            $method = $request->method();
            (new FeiShuClient)->send([
                '上次內(nèi)存' => $memory / 1024 . '(KB)',
                '本次內(nèi)存' => $usage / 1024 . '(KB)',
                '內(nèi)存變化' => $diff / 1024 . '(KB)',
                '請求方法' => $method,
                '請求地址' => $uri,
            ], 'fs_token_check');
        }
        $memory = $usage;

        return $response;
    }

心跳接口

public function isHealthy(Request $request)
    {
        return 'okk';
    }

飛書報警
截圖

每次大概2M增加
截圖

進程的內(nèi)存分布也相差很大,處理的請求差不大,但有的進程才15M,有的就300M多
截圖

后來加了xhprof監(jiān)控,但和飛書里的內(nèi)存不一致,xhprof監(jiān)控的內(nèi)存大致正常

xhprof監(jiān)控頁面
截圖

飛書提醒有12M
截圖

894 10 1
10個回答

walkor 打賞

請求增長到一定程度不再增長不是內(nèi)存泄露。
50M內(nèi)存是正常內(nèi)存占用,沒超過100M不用擔(dān)心。

  • wuxian 24天前

    增長到300M了,服務(wù)器內(nèi)存都爆了

  • walkor 23天前

    看在是不是哪里讀數(shù)據(jù)庫 redis等讀的數(shù)據(jù)太大了,超過php內(nèi)存上限了。
    如果有類似 Fatal error: Allowed memory size of xxx bytes exhausted 看下調(diào)用棧,大概能看出來哪里大量使用了內(nèi)存。

  • wuxian 22天前

    有這個錯誤,是通過execl上傳文件會爆這個錯誤,這塊申請的內(nèi)存是相當(dāng)垃圾內(nèi)存嗎,之后都不能用嗎,要怎么處理呢

  • walkor 22天前

    php申請的內(nèi)存不一定會全部釋放,會留著下次復(fù)用

  • wuxian 22天前

    大佬,評論貼不了圖片。我在問題上加了幾張圖,飛書看到的報警是大概2M一加,進程內(nèi)存嚴重不均衡

  • walkor 22天前

    這個自己測試下吧,看下哪個請求占用了內(nèi)存。尤其excel上傳。其他人幫不上什么忙,只能自己去測試找問題

啥也不是

截圖
沒有慌過

  • 暫無評論
qqxxr

你嘗試著注釋你的中間件,composer包,先從架構(gòu)層次排查,定位在那一層先。然后在定位業(yè)務(wù),這個思路

  • qqxxr 23天前

    也可以正向排查,下載一個裸框架,一層層把你的業(yè)務(wù)加上去。通過壓力測試跑你的接口,這樣也可以排查

liziyu

少用static多用new,少用tp多用lv生態(tài)。會很少很多煩惱;

  • 暫無評論
ichynul

有可能是redis存的東西太多,運行的時候加載進來了。有的緩存時間設(shè)置的很長或是永久的,時間久了就積累了一些垃圾數(shù)據(jù)。
如果redis里面數(shù)據(jù)不重要,直接把使用的庫全庫清除或手動判斷刪除。

  • wuxian 22天前

    redis在一個進程里,變量名是一樣的,應(yīng)該會被覆蓋吧

Le

之前遇到了跟你一樣的問題。。突然開始進程增上,而且是慢慢穩(wěn)定的向上,直到超過上限后自動重啟。。

xiaoming

看是不是redis 我遇到過一次 是redis

  • wuxian 22天前

    老哥,我這邊的redis是用了云廠商的,redis的數(shù)據(jù)不占本機內(nèi)存,redis是怎么關(guān)聯(lián)的,php只是把redis數(shù)據(jù)讀到內(nèi)存里,

  • xiaoming 22天前

    如果redis 單個數(shù)據(jù)太大也會

  • wuxian 22天前

    老哥,我看下我這個情況,問題我加了幾張圖片,內(nèi)存大概是2M一加,而且進程間內(nèi)存相差很大

nitron

什么時候開始出現(xiàn)居高不下的情況的,看下代碼提交日志,回想下當(dāng)時上了什么功能,或者什么功能的業(yè)務(wù)量在那時候起突然比之前增多,沒業(yè)務(wù)代碼,大家看截圖大概率只能靠猜,只能你自己去定位

  • 暫無評論
縫合

單獨搞一部份流量用 xphrof 做內(nèi)存使用分析。基本可以定位到。

  • wuxian 16天前

    接入了xhprof,xhprof監(jiān)控頁面沒發(fā)現(xiàn)大內(nèi)存,問題又貼了幾張圖

jack10082009

Redis內(nèi)存增加是不是應(yīng)該體現(xiàn)在系統(tǒng)內(nèi)存總占用上,請問對于PHP workerman中使用了Redis還會導(dǎo)致workerman進程的內(nèi)存增加嗎?

  • wuxian 17天前

    現(xiàn)在就是使用了redis,問題我截圖了,很奇怪,有的進程內(nèi)存正常

  • qqxxr 16天前

    你有云服務(wù)器嗎?查看一下那段時間中間件redis,mysql日志,看在執(zhí)行哪些操作。有的進程有,有的進程沒,那就可能是某些進程觸發(fā)了業(yè)務(wù)死循環(huán)

??