linux 內存使用情況以及釋放

查看

free -h

Mem 行(第一行)數據說明:      

       Total:1035108KB。表示物理內存總大小。

       Used:1008984KB。表示總計分配給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存並未實際使用。

       Free:26124KB。表示未被分配的內存。

       Shared:0kb。共享內存,一般系統不會用到。

       Buffers:124212KB。系統分配但未被使用的buffers 數量。

       Cached:413000KB。系統分配但未被使用的cache 數量。

-/+ buffers/cache 行(第二行)數據說明:      

 Used:471772kb,實際使用的buffers 與cache 總量,也是實際使用的內存總量。

 Free: 563336kb, 未被使用的buffers 與cache 和未被分配的內存之和,這就是系統當前實際可用內存。

根據以上分析,可以得出一下結論:

1.  實際可用內存大小:

       Free(-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem);

                                   563336 = 26124 + 124212+ 413000

2.  已經分配的內存大小:

       Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)

              1008984kb = 471772 + 124212 +413000

3.  物理內存總大小

       total(Mem) = used(-/+ buffers/cache) + free(-/+ buffers/cache)

                     1035108 = 471772 + 563336

 

釋放

/proc是一個虛擬文件系統,我們可以通過對它的讀寫操作做爲與kernel實體間進行通信的一種手段.也就是說可以通過修改/proc中的文件,來對當前kernel的行爲做出調整.那麼我們可以通過調整/proc/sys/vm/drop_caches來釋放內存.操作如下:

cat /proc/sys/vm/drop_caches
0

首先,/proc/sys/vm/drop_caches的值,默認爲0
手動執行sync命令
描述:sync 命令運行 sync 子例程。如果必須停止系統,則運行 sync 命令以確保文件系統的完整性。sync 命令將所有未寫的系統緩衝區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件。

sync
echo 3 > /proc/sys/vm/drop_caches
cat /proc/sys/vm/drop_caches
3

將/proc/sys/vm/drop_caches值設爲3
再次執行free查看內存已釋放完畢。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章