linux echo命令詳解 linux cached為什么一直不釋放?
linux cached為什么一直不釋放?在讀寫文件時(shí),為了提高讀寫的效率和速度,Linux內(nèi)核會將文件緩存在內(nèi)存中,稱為緩存。即使程序運(yùn)行后,緩存也不會自動(dòng)釋放。當(dāng)你需要使用緩存時(shí),它會自動(dòng)釋放,所
linux cached為什么一直不釋放?
在讀寫文件時(shí),為了提高讀寫的效率和速度,Linux內(nèi)核會將文件緩存在內(nèi)存中,稱為緩存。即使程序運(yùn)行后,緩存也不會自動(dòng)釋放。當(dāng)你需要使用緩存時(shí),它會自動(dòng)釋放,所以不用擔(dān)心沒有可用的內(nèi)存。當(dāng)然,您也可以手動(dòng)釋放它:
echo 1>/proc/sys/VM/dropucaches
echo 2>/proc/sys/VM/dropucaches
echo 3>/proc/sys/VM/dropucaches
注意:請?jiān)谏a(chǎn)環(huán)境中謹(jǐn)慎操作。
linux怎樣自動(dòng)釋放內(nèi)存?
首先,查看/proc/sys/VM/drop緩存的值[根@servertest]#cat/proc/sys/vm/dropcaches0的值默認(rèn)為0。然后,運(yùn)行sync命令[根@servertest]#Sync手動(dòng)執(zhí)行Sync命令(說明:Sync命令運(yùn)行Sync子例程。如果必須停止系統(tǒng),請運(yùn)行sync命令以確保文件系統(tǒng)的完整性。sync命令將所有未寫入的系統(tǒng)緩沖區(qū)寫入磁盤,包括修改的i節(jié)點(diǎn)、延遲塊i/O和讀寫映射文件。最后,輸入命令手動(dòng)釋放內(nèi)存[根@servertest]#echo1>/proc/sys/vm/dropcachesdropCaches可以是一個(gè)介于0和3之間的數(shù)字,表示不同的含義:0:不釋放(系統(tǒng)默認(rèn)值)1:釋放頁緩存2:釋放dentries和inodes3:釋放所有緩存。釋放內(nèi)存后,更改回,讓系統(tǒng)自動(dòng)重新分配內(nèi)存echo0>/proc/sys/VM/drop_ucachesfree-m,以查看內(nèi)存是否已釋放。如果需要釋放所有緩存,請輸入以下命令:[根@servertest]#echo3>/proc/sys/vm/dropucache
~]#清理步驟
#清理前內(nèi)存使用情況
代碼如下:
free-M
#開始清理
代碼如下:
echo 1/proc/sys/vm/dropucache
#清理后內(nèi)存使用情況代碼如下:
free-M
finish
!復(fù)制代碼
代碼如下:
dmidecode | grep-a16內(nèi)存設(shè)備$
要釋放頁面緩存:
echo 1/proc/sys/VM/dropucaches
要釋放dentries和inode:
echo 2/proc/sys/VM/dropucaches
要釋放頁面緩存、dentries和inode:
echo 3/proc/sys/VM/dropucache同步
#最好在發(fā)布前同步以防止數(shù)據(jù)丟失。由于Linux的內(nèi)核機(jī)制,一般不需要釋放使用過的緩存。這些緩存的內(nèi)容可以提高文件的讀寫速度。