[轉] 釋放 Linux 記憶體 vm drop_caches

出處:http://huenlil.pixnet.net/blog/post/26822270-%5B%E8%BD%89%5D-%E9%87%8B%E6%94%BElinux%E8%A8%98%E6%86%B6%E9%AB%94

幾天突然發現記憶體完全被吃光,連swap也一樣,硬碟也發出存取的聲音,查出原因是rtorrent非常耗記憶體,雖然抓檔速度超快,但是關掉後也沒將記憶體釋放,對整個系統還是有那麼一點影響,所以還是先採取手動釋放記憶體,經過釋放記憶體後,整個系統感覺也較順了。

image
我使用的coLinux的核心版本為2.6.22.18,而Linux 在Kernels 2.6.16以後的版本對vm做了很大的調整,可透過/proc/sys/vm/drop_caches這個檔案來釋放記憶體。
1.釋放Linux記憶體(kernels 2.6.16以後的版本):
root@yesican:~# echo 1 > /proc/sys/vm/drop_caches
釋放dentries、inodes所用的 cache memory。
root@yesican:~# echo 2 > /proc/sys/vm/drop_caches
釋放pagecache、dentry、inode 所用的 cache memory。
root@yesican:~# echo 3 > /proc/sys/vm/drop_caches
完全釋放cache memory,必須先執行sync,避免錯誤。
root@yesican:~# sync
在釋放記憶體後再將/proc/sys/vm/drop_caches的值設為0。
root@yesican:~# echo 0 > /proc/sys/vm/drop_caches
2.釋放Linux swap 記憶體:(此例swap在/dev/cobd1)
root@yesican:~# swapoff /dev/cobd1;swapon /dev/cobd1
釋放記憶體後:
image
3.一些觀察記憶體狀況的常用指令:
root@yesican:~# free
root@yesican:~# vmstat
root@yesican:~# ps -aux
root@yesican:~# top
root@yesican:~# watch cat /proc/meminfo
參考資料:Drop Caches

未經允許不得轉載:GoMCU » [轉] 釋放 Linux 記憶體 vm drop_caches