手動(dòng)釋放Linux服務(wù)器內(nèi)存(具體操作步驟)
在服務(wù)器運(yùn)行過(guò)程中,使用free -m查看服務(wù)器內(nèi)存時(shí),經(jīng)常會(huì)發(fā)現(xiàn)free值很小,有些同學(xué)就會(huì)很緊張,總想采取一些措施,使得free值看起來(lái)高一點(diǎn),心里就比較爽一點(diǎn)。其實(shí),個(gè)人覺(jué)得這完全是圖一時(shí)之快,沒(méi)什么實(shí)質(zhì)性用途。
一、大眾釋放內(nèi)存方法
1. 首先使用free -m查看剩余內(nèi)存
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 2773 178 0 130 1097
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
2. 執(zhí)行sync命令
使用sync命令以確保文件系統(tǒng)的完整性,sync 命令運(yùn)行 sync 子例程,將所有未寫(xiě)的系統(tǒng)緩沖區(qū)寫(xiě)到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫(xiě)映射文件。
linux-8v2i:~ # sync
3. 修改/proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
說(shuō)明:
1>. /proc是一個(gè)虛擬文件系統(tǒng),我們可以通過(guò)對(duì)它的讀寫(xiě)操作作為與kernel實(shí)體間進(jìn)行通信的一種手段。也就是說(shuō)可以通過(guò)修改/proc中的文件,來(lái)對(duì)當(dāng)前kernel的行為做出調(diào)整。也就是說(shuō)我們可以通過(guò)調(diào)整/proc/sys/vm/drop_caches來(lái)釋放內(nèi)存。
2>. 關(guān)于drop_caches的官方說(shuō)明如下:
Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to becomefree.
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.
3>. Linux內(nèi)核會(huì)將它最近訪問(wèn)過(guò)的文件頁(yè)面緩存在內(nèi)存中一段時(shí)間,這個(gè)文件緩存被稱為pagecache。
4.再使用free -m查看剩余內(nèi)存,情況如下:
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 1773 2325 0 0 80
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
二、Linux內(nèi)存分析
1. 首先對(duì)free -m查看結(jié)果進(jìn)行分析
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 2773 178 0 130 1097
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
各參數(shù)含義:
•total:總物理內(nèi)存
•used:已使用內(nèi)存
•free:完全未被使用的內(nèi)存
•shared:應(yīng)用程序共享內(nèi)存
•buffers:緩存,主要用于目錄方面,inode值等
•cached:緩存,用于已打開(kāi)的文件
•-buffers/cache:應(yīng)用程序使用的內(nèi)存大小,used減去緩存值
•+buffers/cache:所有可供應(yīng)用程序使用的內(nèi)存大小,free加上緩存值
其中:
•total = used + free
•-buffers/cache=used-buffers-cached,這個(gè)是應(yīng)用程序真實(shí)使用的內(nèi)存大小
•+buffers/cache=free+buffers+cached,這個(gè)是服務(wù)器真實(shí)還可利用的內(nèi)存大小
2. Linux的內(nèi)存分配方式
大家都知道,Linux服務(wù)器為了提高效率,會(huì)提前申請(qǐng)內(nèi)存,即使這些內(nèi)存沒(méi)有被具體應(yīng)用使用,Linux也會(huì)提前申請(qǐng)這些內(nèi)存,然后利用這些內(nèi)存做緩存用,即將剛打開(kāi)的文件系統(tǒng)存入cache中,這樣對(duì)應(yīng)的服務(wù)器free值會(huì)越來(lái)越少,buffers和cached會(huì)越來(lái)越大,因此給大家表象就是內(nèi)存越來(lái)越少了,大家就緊張了;其實(shí),大家完全不用緊張,Linux服務(wù)器在發(fā)現(xiàn)內(nèi)存不足時(shí),會(huì)自動(dòng)清理cached區(qū)域,釋放內(nèi)存,然后繼續(xù)增大cache,free繼續(xù)減少。因此,那樣手動(dòng)降低內(nèi)存使用率的方法,其實(shí)就是圖一時(shí)之快,呵呵。
相關(guān)文章
linux下配置jdk環(huán)境變量的三種方法總結(jié)
下面小編就為大家?guī)?lái)一篇linux下配置jdk環(huán)境變量的三種方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09如何在linux系統(tǒng)的host上安裝windows系統(tǒng)的guest
本文將介紹如何在Linux系統(tǒng)的host上安裝windows系統(tǒng)的guest,這里以win7-32系統(tǒng)為例進(jìn)行介紹,然后在文章底部給大家補(bǔ)充講解如何在Linux系統(tǒng)虛擬機(jī)中安裝Windows系統(tǒng),具體內(nèi)容詳情通過(guò)本文一起學(xué)習(xí)吧2017-03-03