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

webman內(nèi)存泄漏排查,需要的大哥給點(diǎn)思路

JunH

為什么php start.php status 顯示進(jìn)程與實(shí)際不符合

我現(xiàn)在打開的php start.php status 顯示內(nèi)存占用與我服務(wù)器上面看到的不一樣
如圖:截圖

服務(wù)器進(jìn)程內(nèi)存:397768 確是顯示 物理內(nèi)存使用有368M

上次咨詢過的內(nèi)存泄漏排查方法記錄的日志

內(nèi)存中間件
截圖
截圖
是不是代表/admin/room/getRoomList有內(nèi)存泄漏呢

874 3 2
3個(gè)回答

nitron

不是,說明他要用2MB內(nèi)存,你下一條日志不就-2MB了么

  • JunH 2024-10-17

    感覺不是這個(gè)是差值,而且是請(qǐng)求之后的釋放后差值。有點(diǎn)沒搞透徹,現(xiàn)在5臺(tái)業(yè)務(wù)服務(wù)器一直內(nèi)存在奔潰邊緣

  • nitron 2024-10-17

    你下一條日志不就-2MB了么

  • nitron 2024-10-17

    你這個(gè)diff是執(zhí)行結(jié)束之前的值,在你return $response之前都不會(huì)釋放,所以getRoomList +2MB,下一個(gè)日志的memory起始值就是上一個(gè)日志沒有釋放時(shí)候的結(jié)束值,所以再算diff的時(shí)候就是-2MB

  • nitron 2024-10-17

    看內(nèi)存使用很正常,所以先弄清楚是內(nèi)存的正常增長還是內(nèi)存泄漏

  • JunH 2024-10-17

    下一條日志的-2M 并不是代表當(dāng)前接口的內(nèi)存占用 僅僅是差值 因?yàn)椴糠忠苍卺尫拧?/p>

  • JunH 2024-10-17

    現(xiàn)在如果實(shí)在不行只能去監(jiān)聽服務(wù)器內(nèi)存達(dá)到多少執(zhí)行reload了,為什么主進(jìn)程監(jiān)聽php.ini達(dá)到會(huì)自動(dòng)reload,這個(gè)也沒有生效呢 ,我看框架上面是這么寫的 現(xiàn)在我單個(gè)進(jìn)程已經(jīng)達(dá)到168M,php.ini設(shè)置的128M 沒有自動(dòng)釋放

  • JunH 2024-10-17

    if (!$worker || $worker->id !== 0) {
    return $response;
    } 大哥 你知道這個(gè)是啥意思不? 我沒有很看明白,我進(jìn)程開啟32個(gè) 但是這個(gè)判斷是大佬給的 不知道是不是主進(jìn)程不進(jìn)行記錄

  • nitron 2024-10-17
    00:00:07 memroy_get_usage = 119537664
    .....
    00:10:09 memroy_get_usage = 119537664
  • nitron 2024-10-17

    如果你看不明白我上面說的意思,那我覺得我也沒必要再說下去了,是個(gè)死循環(huán),解決不了問題

  • JunH 2024-10-17

    現(xiàn)在明白了 感謝

walkor 打賞

從日志看沒有內(nèi)存泄露。每次 /admin/room/getRoomList 請(qǐng)求后內(nèi)存固定是 119537664,沒有增長。
只要內(nèi)存不是無限增長就不是內(nèi)存泄露。有時(shí)候業(yè)務(wù)從數(shù)據(jù)庫讀取很大的數(shù)據(jù)時(shí)例如幾十M會(huì)申請(qǐng)很大內(nèi)存,這個(gè)內(nèi)存申請(qǐng)后PHP不一定立刻歸還操作系統(tǒng),可能會(huì)留做復(fù)用,這時(shí)候內(nèi)存占用就很大。但只要不是無限增長就沒事。

memory_get_usage($real_usage) 返回的是php腳本申請(qǐng)的內(nèi)存,參數(shù)傳false和true值也不同。 top等命令看到的內(nèi)存是PHP所有東西占用的內(nèi)存,包括PHP可執(zhí)行文件自身占用、共享庫、緩存等所有占用,肯定要大一些。如果大很多可能是可執(zhí)行文件很大,例如做了二進(jìn)制打包、phar打包等,也有可能是php或者某個(gè)擴(kuò)展的bug。

關(guān)于 “現(xiàn)在我單個(gè)進(jìn)程已經(jīng)達(dá)到168M,php.ini設(shè)置的128M 沒有自動(dòng)釋放” 問題,
執(zhí)行 php -i | grep memory_limit 看下實(shí)際值,因?yàn)榭赡軟]找對(duì)php.ini文件,也有可能config/process.php里手動(dòng)設(shè)置了釋放閾值

if (!$worker || $worker->id !== 0) {
return $response;
}

意思是只記錄0號(hào)進(jìn)程的內(nèi)存使用情況,所有進(jìn)程都記錄不好比對(duì)。

  • JunH 2024-10-17

    感謝大佬解釋的這么詳細(xì),現(xiàn)在明白了所有的關(guān)系。等我自己在好好排查下

  • JunH 2024-10-17

    現(xiàn)在我的系統(tǒng)每天的訪問量快到200W了,5臺(tái)4核8G的服務(wù)器 內(nèi)存都在80-90,訪問量還在不停增長有點(diǎn)擔(dān)心

rbb

你沒沒有排除,業(yè)務(wù)的死循環(huán)導(dǎo)致的泄露???就是某個(gè)接口請(qǐng)求完了,業(yè)務(wù)有死循環(huán)導(dǎo)致的,而且這種現(xiàn)象會(huì)導(dǎo)致當(dāng)前進(jìn)程阻塞,一直到該進(jìn)程觸發(fā)了php的內(nèi)存上限后,被workerman殺死進(jìn)程后,重啟進(jìn)程

  • rbb 2024-10-17

    你這種內(nèi)存不一致的進(jìn)程出現(xiàn)了,你觀察下是不是就那幾個(gè)大內(nèi)存的進(jìn)程,內(nèi)存在上漲

  • rbb 2024-10-17

    其他的的進(jìn)程都是好的,唯獨(dú)那幾個(gè)上漲,就很像我說的這種情況

  • rbb 2024-10-17

    還有如果你只是判斷是請(qǐng)求導(dǎo)致的內(nèi)存泄露,直接用壓測工具隨便跑接口就可以看出來了

  • JunH 2024-10-17

    好的 感謝,我也準(zhǔn)備白天沒有業(yè)務(wù)量的時(shí)候壓測單個(gè)這個(gè)接口看看內(nèi)存會(huì)有多大變化

  • tanhongbin 2024-10-18

    這個(gè)最直觀的辦法就是壓測 然后觀察進(jìn)程 內(nèi)存使用情況 如果壓測一直增長 就是內(nèi)存泄漏 有時(shí)候 一直new 類 不釋放 也會(huì)緩慢增長 我測試過

??