Linux內存釋放

Linux內存釋放

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

1python

2緩存

3spa

4進程

5ip

6內存

7it

8table

9效率

[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比較多,你能夠嘗試這樣


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

一、使用sync命令將全部未寫的系統緩存區write to disk,包含已修改的i node、已延遲的塊I\O和讀寫映射

[root@ipython ~]# sync

 

二、粗暴清理

[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

相關文章
相關標籤/搜索