Linux

free 顯示使用的記憶體多於頂級程序總數

  • July 5, 2016

更新:

這是由於 nss-softkn 的一個已知問題引起的。見這篇文章: https ://www.splyt.com/blog/2014-05-16-optimizing-aws-nss-softoken


當我從我的 centos 6.5 機器執行 free -m 時,我看到我只有大約 1400 mb 的可用記憶體,包括記憶體。當我做 top 時,按記憶體排序並添加我只看到大約 1600 個正在使用的程序。我應該有更多的可用記憶體。這發生在我們的幾個盒子上。

[root@db1 ~]# free -m
             total      used       free     shared    buffers     cached
Mem:          7840       7793         47          0        287       1357
-/+ buffers/cache:       6148       1692
Swap:         7983          7       7976

最高輸出

在此處輸入圖像描述

這是視覺化程序消耗的記憶體的更好方法:

在此處輸入圖像描述

1692m根據Linux,您大約有可用記憶體。

在頂部的“記憶體”行中,您的記憶體似乎幾乎是 99%(7793m / 7840m),但實際上您只使用了大約 78% 的可用記憶體。另請參閱http://www.linuxatemyram.com/以獲得更深入的解釋。


免費 vs 頂級 vs /proc/meminfo

程序記憶體

將程序使用的記憶體加起來top並嘗試將其與已使用的記憶體相匹配free會給你帶來不好的時間。由於top分頁,您甚至可能無法獲得此列表中的所有程序,更好的方法是使用ps aux --sort -rss按記憶體使用對程序進行排序。

磁碟記憶體

Linux 將使用你不使用的記憶體來讓你在幕後執行得更快。這在free的“記憶體”列中進行了說明,這就是為什麼您應該查看“-/+ 緩衝區/記憶體”旁邊的值以獲取實際使用和空閒記憶體的原因。

核心板記憶體核心模組和驅動程序也

有辦法使用您未使用的記憶體。“SReclaimable”是您可以在記憶體壓力下使用的記憶體。有一個很酷的工具可以辨識核心是如何記憶體的。slabtop

清除記憶體

echo 1 > /proc/sys/vm/drop_caches釋放頁面記憶體

echo 2 > /proc/sys/vm/drop_caches釋放 dentry 和 inode

echo 3 > /proc/sys/vm/drop_caches釋放 pagecache、dentries 和 inode

也可以看看

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