RabbitMQ 將每個隊列設計為一個 Erlang 進程,Erlang 進程GC也是采用分代策略,當新老生代一起參與Major GC時,Erlang虛擬機會新開內存,根據root set將存活的對象拷貝至新空間,這個過程會造成新老內存空間同時存在,極端情況下,一個隊列可能短期內需要兩倍的內存占用量,所以內存流控閥值設置為0.4相對是一個比較安全的值,設置太高,有可能系統內存被全部占用導致系統進程 kill RabbitMQ進程,設置過低導致內存使用率不高。
RabbitMQ 將每個隊列設計為一個 Erlang 進程,Erlang 進程GC也是采用分代策略,當新老生代一起參與Major GC時,Erlang虛擬機會新開內存,根據root set將存活的對象拷貝至新空間,這個過程會造成新老內存空間同時存在,極端情況下,一個隊列可能短期內需要兩倍的內存占用量,所以內存流控閥值設置為0.4相對是一個比較安全的值,設置太高,有可能系統內存被全部占用導致系統進程 kill RabbitMQ進程,設置過低導致內存使用率不高。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。