# 清理步驟
# 清理前內(nèi)存使用情況
free -m
# 開始清理
echo 1 > /proc/sys/vm/drop_caches
# 清理后內(nèi)存使用情況
free -m
完成!
# 查看內(nèi)存條數(shù)命令:
dmidecode | grep -A16 "Memory Device$"
To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
sync
# 釋放前最好sync一下,防止丟數(shù)據(jù)。因?yàn)長(zhǎng)INUX的內(nèi)核機(jī)制,一般情況下不需要特意去釋放已經(jīng)使用的cache。這些cache起來的內(nèi)容可以增加文件以及的讀寫速度。
# 先說下free命令怎么看內(nèi)存
$free
total used free shared buffers cached
Mem: 1535052 918928 616124 0 2512 82964
-/+ buffers/cache: 833452 701600
Swap: 0 0 0
# 第一行用全局角度描述系統(tǒng)使用的內(nèi)存狀況:
total——總物理內(nèi)存
used——已使用內(nèi)存,一般情況這個(gè)值會(huì)比較大,因?yàn)檫@個(gè)值包括了cache+應(yīng)用程序使用的內(nèi)存
free——完全未被使用的內(nèi)存
shared——應(yīng)用程序共享內(nèi)存
buffers——緩存,主要用于目錄方面,inode值等(ls大目錄可看到這個(gè)值增加)
cached——緩存,用于已打開的文件
total = used + free
used = buffers+cached (maybe add shared also)
第二行描述應(yīng)用程序的內(nèi)存使用:
前個(gè)值表示-buffers/cache——應(yīng)用程序使用的內(nèi)存大小,used減去緩存值
后個(gè)值表示+buffers/cache——所有可供應(yīng)用程序使用的內(nèi)存大小,free加上緩存值
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached
第三行表示swap的使用:
used——已使用
free——未使用
手動(dòng)執(zhí)行sync命令(描述:sync 命令運(yùn)行 sync 子例程。如果必須停止系統(tǒng),則運(yùn)行 sync 命令以確保文件系統(tǒng)的完整性。sync 命令將所有未寫的系統(tǒng)緩沖區(qū)寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件)
echo 3 > /proc/sys/vm/drop_caches
cat /proc/sys/vm/drop_caches
3
!將/proc/sys/vm/drop_caches值設(shè)為3
# 有關(guān)/proc/sys/vm/drop_caches的用法在下面進(jìn)行了說明
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become
free.
To free pagecache, use echo 1 gt; /proc/sys/vm/drop_caches; to
free dentries and inodes, use echo 2 gt; /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 gt;
/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects
# 原文鏈接:a >http://levi.cg.am/?p=3224/a>