linux系統中cache清理/釋放命令

本文參考博客:《(Linux)釋放系統緩存操作

目錄

前言

1.清緩存前同步

2.Linux釋放內存

3.查看內存


前言

在Linux系統中有先進的緩存機制,會針對dentry(用於VFS,加速文件路徑名到inode的轉換)、Buffer Cache(針對磁盤塊的讀寫)和Page Cache(針對文件inode的讀寫)進行緩存操作,有效縮短 I/O系統調用(比如read,write)的時間。但當進行了大量文件操作之後,緩存會把內存資源基本用光,導致系統緩慢,使用swap空間,影響了性能,這時就需要清理緩存了。

手動釋放緩存操作:

通過設置/proc/sys/vm/drop_caches來釋放內存

操作環境:

Ubuntu 16.04


1.清除cache前同步

釋放cache前先使用sync命令做同步,將所有未寫的系統緩衝區寫到磁盤中,以確保文件系統的完整性,否則在釋放緩存的過程

中,可能會丟失未保存的文件。 

sync

2.Linux釋放cache

/proc/sys/vm/drop_caches的值爲是0-3之間的數字,代表不同的含義: 

0:不釋放(系統默認值) 

1:釋放頁緩存 

2:釋放dentries和inodes 

3:釋放所有緩存

可進行如下操作對cache進行清除:

<1>釋放頁緩存 

echo 1 > /proc/sys/vm/drop_caches

<2>釋放完內存後改回去讓系統重新自動分配內存 

echo 0 >/proc/sys/vm/drop_caches

<3>如果要釋放所有緩存 

echo 3 > /proc/sys/vm/drop_caches

3.linux查看cache使用情況

看內存的命令

free -m

參數介紹:

total 內存總數 

used 已使用內存數 

free 空閒內存數 

shared 多個進程共享的內存數 

buffers 緩存(用於目錄,inode值) 

cached 緩存(用於已打開的文件)

查看清除前後,l系統cache的使用情況:

//清除前
# free -m
              total        used        free      shared  buff/cache   available
Mem:           2474         964         292          10        1216        1263
Swap:          1021           5        1016

# sync
# echo 3 > /proc/sys/vm/drop_caches
//清除後
# free -m
              total        used        free      shared  buff/cache   available
Mem:           2474         913        1232          13         327        1348
Swap:          1021           5        1016

結果:cache確實被釋放,這種命令很實用呢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章