free 顯示使用的記憶體多於頂級程序總數
更新:
這是由於 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也可以看看