如何檢查Linux的內存使用狀況?
第一種,在linux下查看內存使用情況的最簡單方法是使用free命令,free命令可以顯示系統(tǒng)中物理內存和交換內存的總量,還可以顯示內核所用的buffer和caches總量。在我的系統(tǒng)中運行l(wèi)inux命令,顯示結果在下面圖中所示。
其中第一行顯示系統(tǒng)物理內存的使用情況,第二行顯示的是swap交換內存的使用情況。
total列表示系統(tǒng)中內存的總量,
used列表示已用內存總量,該列的值可通過如下公式獲得:used = total - free - buffers – cache,free列表示空閑內存容量,
shared為共享內存已經(jīng)使用的容量,
buff/cache為buffers和cache所用總量的總和,其中buffers為內核緩沖區(qū)所用的內存,cache為頁緩存和slabs所用的內存容量。
available列為估算的在不需要swapping內存的情況下,可用物理內存容量。
這里free默認的顯示單位是Kbytes,可以用 -b(bytes), -m(Mbytes),-k(Kbytes)或者-g(Gbytes) 來置頂要顯示的單位。實際中更常用的是使用-h來顯示易于閱讀的輸出。
在我的系統(tǒng)中運行free -h命令,顯示結果如下圖所示。
需要注意的是swap 的使用量。一般來說, swap 的used最好是0,最多不要超過20%。如果您發(fā)現(xiàn) swap 的使用量超過 20% ,那么說明系統(tǒng)的物理內存已經(jīng)嚴重不足了。 更多關于free的用法可以通過free -help命令查看或者man free查看更加詳細的信息。
第二種,查看linux內存使用情況的方法是使用top命令,top輸出的第三行和第四行顯示當前系統(tǒng)物理內存和交換內存的使用情況,top命令還可以查看每個進程的內存使用率,在我的系統(tǒng)中運行top命令的顯示結果如下圖所示。
第三種,free和top命令顯示的內存信息都是通過讀取/proc/meminfo文件生成的,所以我們也可以通過查看/proc/meminfo文件來查看系統(tǒng)的內存使用情況。
以上介紹的方法都是在命令行環(huán)境下查看,也可以通過圖形界面查看系統(tǒng)的內存使用情況,圖形界面查看內存使用情況比較常用的工具是System Monitor。一般發(fā)行版系統(tǒng)都會自帶這個工具。
還有一些命令也可以顯示內存的使用情況,比如ps、vmstat、memstat等。但這不是這些工具的主要作用。這里不做詳細闡述