2013年2月27日 星期三

[Linux]記憶體消失?

參考資料:
http://www.linuxatemyram.com/

free指令可以了解目前記憶體使用的狀況。
突然有一天你發現自己可用(顯示為free)的記憶體突然變得很少,
但是又沒有真的在跑很多程式,你懷疑是不是linux吃掉你的記憶體?

並不是,簡單來講,linux覺得與其讓RAM放著沒事幹,
不如讓它做點其他工作,像是檔案的buff和cache,提升系統效能。
你在其他欄位(buffers和cached)就可以發現它們跑到那邊去了。
當你真的要用更多記憶體的時候,它們會馬上回來,不需要擔心。

利用 echo 1 > /proc/sys/vm/drop_caches
就可以看到free的記憶體又變很多了。

參考資料下面也有驗證:
http://www.linuxatemyram.com/play.html

簡單來講,自己寫一個瘋狂malloc的程式,
就可以看出其實可用的記憶體仍然超過free顯示的量,
證明你還是有很多可用的記憶體,雖然它們不在free那區。

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁