❶ 如何在Linux操作系統中手工釋放內存緩存
要達到釋放緩存的目的,我們首先需要了解下關鍵的配置文件/proc/sys/vm/drop_caches。這個文件中記錄了緩存釋放的參數,默認值為0,也就是不釋放緩存。他的值可以為0~3之間的任意數字,代表著不同的含義:
0
–
不釋放
1
–
釋放頁緩存
2
–
釋放dentries和inodes
3
–
釋放所有緩存
知道了參數後,我們就可以根據我們的需要,使用下面的指令來進行操作。
首先我們需要使用sync指令,將所有未寫的系統緩沖區寫到磁碟中,包含已修改的
i-node、已延遲的塊
I/O
和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。
#sync
接下來,我們需要將需要的參數寫進/proc/sys/vm/drop_caches文件中,比如我們需要釋放所有緩存,就輸入下面的命令:
#echo
3
>
/proc/sys/vm/drop_caches
此指令輸入後會立即生效,可以查詢現在的可用內存明顯的變多了。
要查詢當前緩存釋放的參數,可以輸入下面的指令:
#cat
/proc/sys/vm/drop_caches
下面我們來看一個實際測試:
先看看內存使用狀況
[root@node1
~]#
free
-m
total
used
free
shared
buffers
cached
Mem:
8004
6557
1446
0
163
5630
-/+
buffers/cache:
763
7240
Swap:
1983
0
1983
把內存里的數據暫時寫到硬碟里
[root@node1
~]#
sync
修改/proc/sys/vm/drop_caches文件
[root@node1
~]#
echo
3
>
/proc/sys/vm/drop_caches
[root@node1
~]#
cat
/proc/sys/vm/drop_caches
再看內存,終於釋放出來了。
[root@node1
~]#
free
-m
total
used
free
shared
buffers
cached
Mem:
8004
631
7372
0
0
60
-/+
buffers/cache:
570
7433
Swap:
1983
0
1983