Linux

監控 Linux 系統上的記憶體使用情況

  • April 1, 2015

我們使用 WhatsUp Gold 來監控我們所有的網路伺服器。在我們的 Linux 伺服器上(在很大程度上,我們的 FreeBSD 伺服器)我的記憶體監視器有點問題。我們使用帶有 WUG 的 SNMP 從伺服器中獲取數據。SNMP 守護程序在伺服器上返回的記憶體計數器是組合值(已使用、記憶體、緩衝區)。現在我的一台伺服器看起來像這樣:

[admin@stgwww snmp]$ free -m
            total       used       free     shared    buffers     cached 
Mem:          7872       1656       6216          0        143      1107
-/+ buffers/cache:        404       7467 
Swap:         4867          0       4867

通過 SNMP 返回給 WUG 的值是 1656。據我了解,記憶體的 RAM 本質上是免費 RAM,其額外的好處是可以掛起之前佔用的數據,以防再次需要它。因此,出於我們想知道實際使用了多少 RAM 的目的,我們返回的值具有誤導性。如果我們偏離 WUG 所繪製的圖表,我們就會被引導相信正在使用的 RAM 更多,而可用的 RAM 比實際情況要少。

那麼監控這個的最好方法是什麼?WUG 允許我編寫 SSH 腳本,它可以每 5 分鐘左右 SSH 到伺服器,執行腳本並返回值(只要它是單個數值)。有了這個,我編寫了一個腳本,它從上面的範例中提取“404”數字並將其除以總數量,得到一個使用百分比,我將其返回到 WUG 並繪製在從 0 到 100 的圖表上。但是這似乎是一種黑客攻擊的方式。

我最好監控免費+緩衝區+記憶體值嗎?在 WUG 中是否有更好的方法來做到這一點?想法?

去看看linuxatemyram.com。WUG 告訴你 Linux 認為使用了什麼(使用+緩衝區+記憶體)。您決定監控的內容(已使用/總計)對我來說似乎是合理的,尤其是對於圖表,因為它不需要了解系統細節。

空閒記憶體是空閒記憶體,緩衝區是可以回收的記憶體記憶體。我使用的大多數監控工具都在累積區域圖中顯示了這種差異,該圖顯示了至少在 100% 級別下堆疊的已使用、記憶體和非活動記憶體,並在這些區域上進行交換。正確了解伺服器如何執行的唯一方法是查看所有這些。

如果您只能繪製一個值,我會建議您繪製已用記憶體的圖表,並考慮“免費”其餘部分。哦,我還會推薦切換監控工具。即使是預設配置的 munin 也有不錯的記憶體圖。

引用自:https://serverfault.com/questions/344449