Process

Linux 高記憶體使用(頂部總不匹配)

  • October 14, 2010

我有一個可憐的 mans vps - 256MB 專用 RAM。我已經安裝了 LAMP。伺服器上目前還沒有網站正在執行。

記憶體使用量仍為 225MB(只有 31MB 可用)。

我已經使用 top 和另一種方法進行了測量。Top 說大約使用了 225mb,但如果我總結這些過程,它只有 20%。

我用來測量記憶體的另一個腳本:

#!/bin/bash
bean=`cat /proc/user_beancounters`
guar=`echo "$bean" | grep vmguar | awk '{ print $4;}'`
priv=`echo "$bean" | grep privvm | awk '{ print $2;}'`
let totl=guar/256
let used=priv/256
let free=$totl-$used
echo "VPS Memory:"
echo "  total: $totl mb   used: $used mb   free: $free mb"

給出相同的結果(使用 225MB)。

我已重新啟動伺服器,但仍在使用 225MB 記憶體。我怎樣才能找到罪魁禍首程序。請幫忙!

============

ps efax -o command,vsize,rss,%mem,size 的輸出表明只有 20%(aournd 50MB)被程序實際使用。

(apt-get install imagemagick 由於記憶體不足而失敗。我想我需要購買更高的記憶體,例如 512 MB。我認為失敗可能是由於這種“虛假”記憶體使用造成的)。

有什麼方法可以知道記憶體是否確實可用作記憶體(頂部顯示緩衝區/記憶體為 0 - 我聽說如果 RAM 可用作記憶體,它將顯示為“緩衝區或記憶體)。

free -m 的輸出:

free -m
            total       used       free     shared    buffers     cached
Mem:           256        226         29          0          0          0
-/+ buffers/cache:        226         29
Swap:            0          0          0

它也顯示了 29 MB 的可用緩衝區/記憶體 :(

Linux 將使用盡可能多的記憶體作為記憶體,如果其他程序需要更多記憶體,則會放棄記憶體。在這裡查看更多資訊。

嘗試從以下連結中使用如何由哪個程序使用並更新回來

http://studyhat.blogspot.com/2010/09/memory-use-by-which-process-centos-rhel.html

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