swoole多進程使用過程中,主進程記憶體不斷變大何解?

來源:互聯網
上載者:User
目前業務需要實現一個時時分析資料流的功能,需要精確到秒層級,原本打算用swoole task實現一個任務服務,但是目前還沒有對應的機器跑服務端,所以暫時決定用swoole 的多進程模型結合swoole 的timer實現,過程中遇到一個父進程,記憶體佔用不斷飆升的問題,求解?
其中代碼邏輯是,在父進程中建立6個swoole_process,通過swoole_timer隔一秒鐘分發任務給閒置子進程,並標記該進程為忙碌狀態,子進程處理完任務後與父進程通過管道通訊,通知父進程當前進程處於空閑狀態,通過父子之間的通訊,起到類似"父進程維護一個子進程池"的效果,其中某個進程空閑超過一段時間或者超過一定處理任務數,父進程即可通知該進程銷毀並拉起新的子進程。代碼邏輯大概這樣,但是遇到的問題是父進程的記憶體佔用逐漸層大,請問swoole大神們該如何解決?是不是因為父進程維護這個類似子進程池導致的呢?請賜教

回複內容:

目前業務需要實現一個時時分析資料流的功能,需要精確到秒層級,原本打算用swoole task實現一個任務服務,但是目前還沒有對應的機器跑服務端,所以暫時決定用swoole 的多進程模型結合swoole 的timer實現,過程中遇到一個父進程,記憶體佔用不斷飆升的問題,求解?
其中代碼邏輯是,在父進程中建立6個swoole_process,通過swoole_timer隔一秒鐘分發任務給閒置子進程,並標記該進程為忙碌狀態,子進程處理完任務後與父進程通過管道通訊,通知父進程當前進程處於空閑狀態,通過父子之間的通訊,起到類似"父進程維護一個子進程池"的效果,其中某個進程空閑超過一段時間或者超過一定處理任務數,父進程即可通知該進程銷毀並拉起新的子進程。代碼邏輯大概這樣,但是遇到的問題是父進程的記憶體佔用逐漸層大,請問swoole大神們該如何解決?是不是因為父進程維護這個類似子進程池導致的呢?請賜教

父進程記憶體流失了,某些全域變數數組未即時釋放記憶體導致的。檢查你的代碼。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.