上上週吧,一個朋友問我說他公司的服務器內存free 爲0 是爲何,意思大概是內存去哪了,這引起了一個小小的討論,也就是內存釋放的問題…html

 

首先咱們可能會用free 去查看內存的使用率,它應該是這樣的node

[root@ipython ~]# free -m total used free shared buffers cached Mem: 32040 31707 332 0 498 27649 -/+ buffers/cache: 3559 28480 Swap: 16087 0 16087 ##實際上在一個進程結束後其內存是會被釋放的,可是內核沒有馬上把內存收集到free中,而是存放在cache或buffers當中,以提升系統的IO效率,cache和buffered的內存是由內核進行動態的配置管理,若是系統的free大小不夠的時候,系統會自動釋放cache buffer的內存給程序使用!## ##證:若是說used佔用不少,free不多,並且cache和buffer佔的比例也很小,那代表內存是不夠用了##

 

固然,若是你仍須要看到free比較多,你能夠嘗試這樣python

1、使用sync命令將全部未寫的系統緩存區write to disk,包含已修改的i node、已延遲的塊I\O和讀寫映射 [root@ipython ~]# sync 2、粗暴清理 [root@ipython ~]# cat /proc/sys/vm/drop_caches 0 ##能夠看到默認是0,drop_caches提供了三個選項操做## 1 清空頁緩存 2 清空inode和目錄樹緩存 3 清空全部的緩存 ##清空緩存頁## [root@ipython ~]# echo "1">/proc/sys/vm/drop_caches ##再來看看## [root@ipython ~]# free -m total used free shared buffers cached Mem: 32040 2564 29475 0 0 40 -/+ buffers/cache: 2524 29515 Swap: 16087 0 16087
 
» 轉載保留版權: IT辰逸 » 《談談Linux內存釋放》
» 本文版權採起: BY-NC-SA 協議進行受權,轉載註明出處。除IT-Tools、News以及特別標註,本站全部文章均爲原創。
» 若是喜歡能夠: 點此訂閱本站