歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux內存釋放機制

Linux內存釋放機制

日期:2017/2/28 16:18:27   编辑:Linux教程

今天在Linux下啟動了幾個Tomcat服務,突然發現24G的內存居然差點給用完了,看圖,注意紅色的地方

先解釋一下其中的含義:

total 內存總數

used 已經使用的內存數

free 空閒的內存數

shared 多個進程共享的內存總額

buffers Buffer Cache和cached Page Cache 磁盤緩存的大小

-buffers/cache 的內存數:used - buffers - cached

+buffers/cache 的內存數:free + buffers + cached

可用的memory=free memory+buffers+cached

從網上得知:為了提高磁盤存取效率, Linux做了一些精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,後者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。

網上有人說等一段時間就會釋放,www.linuxidc.com 答案是NO,但是我們可以手動釋放buffer空間。

/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 命令以確保文件系統的完整性。sync 命令將所有未寫的系統緩沖區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件)

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

將/proc/sys/vm/drop_caches值設為3

請查看圖片,已經將內存釋放。

Copyright © Linux教程網 All Rights Reserved