Memcached
Memcached 可能洩漏記憶體
我遇到了一個非常奇怪的問題,我有點迷茫,因為我不知道該怎麼辦了。
我們在生產 4 個專用的 memcached 盒子中執行。所有盒子都有 48Gb 的 RAM,它們正在執行 memcached,沒有別的,守護程序的記憶體限制設置為 42Gb。
問題是,無論流量和獲取/設置的數量如何,接收記憶體的盒子都會在所有 4 個盒子上填滿大約 38Gb,但隨後作業系統可用的空閒 RAM 數量將在整個過程中開始緩慢下降幾天后盒子開始交換,填滿交換和顛簸!現在這真的很奇怪,因為盒子上沒有其他東西可以填滿剩餘的 RAM,而且 memcached 正在吃掉 38Gb 並且沒有增長(至少這是圖表和統計數據所顯示的)。
我嘗試將swappiness設置為0,但沒有幫助。我曾嘗試進一步降低記憶體限制,但我得到了相同的行為。
我正在執行 Centos 5.6、2.6.18-238、memcached 1.4.4 和 libevent-1.4.13-1。
你們中有人遇到過類似的問題嗎?memcached 可能會洩漏記憶體並且沒有顯示在圖表或常用的 Linux 工具中嗎?
謝謝!擔
Memcached可能會洩漏記憶體(這些事情會發生),但它會出現在記憶體統計中。如果沒有一個不太可能出現的核心錯誤,記憶體記帳將是準確的。總而言之,您在診斷活動中遺漏了一些東西。收集更多數據並繼續關注它。
首先要做的事情是:你真的有必要為 memcached 設置如此高的記憶體限制嗎?實際上小於 42 GB 就足夠了嗎?