來源: http://blog.yesican.tw/?p=912
幾天突然發現記憶體完全被吃光,連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


創作者介紹
創作者 huenlil 的頭像
huenlil

H's 手札

huenlil 發表在 痞客邦 留言(1) 人氣()