因為LINUX的內核機制,一般情況下不需要特意去釋放已經使用的cache。這些cache起來的內容可以增加文件以及的讀寫速度。
先說下free命令怎么看內存
[root@yuyii proc]# free
total used free shared buffers cached
Mem: 515588 295452 220136 0 2060 64040
-/+ buffers/cache: 229352 286236
Swap: 682720 112 682608
其中第一行用全局角度描述系統使用的內存狀況:
total——總物理內存
used——已使用內存,一般情況這個值會比較大,因為這個值包括了cache+應用程序使用的內存
free——完全未被使用的內存
shared——應用程序共享內存
buffers——緩存,主要用于目錄方面,inode值等(ls大目錄可看到這個值增加)
cached——緩存,用于已打開的文件
note:
total=used+free
used=buffers+cached (maybe add shared also)
第二行描述應用程序的內存使用:
前個值表示-buffers/cache——應用程序使用的內存大小,used減去緩存值
后個值表示+buffers/cache——所有可供應用程序使用的內存大小,free加上緩存值
note:
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached
第三行表示swap的使用:
used——已使用
free——未使用
cache釋放:
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一下,防止丟數據。