學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

Linux如何手動(dòng)清理內(nèi)存中cache信息

時(shí)間: 春健736 分享

  當(dāng)在Linux下頻繁存取文件后,物理內(nèi)存會(huì)很快被用光,當(dāng)程序結(jié)束后,內(nèi)存不會(huì)被正常釋放,而是一直作為caching。那么Linux如何手動(dòng)清理內(nèi)存中cache信息?下面跟著學(xué)習(xí)啦小編一起來了解一下吧。

  Linux手動(dòng)清理內(nèi)存中cache信息方法

  在做分布式系統(tǒng)文件寫入及讀取測試時(shí),發(fā)現(xiàn)寫入大量的文件后,內(nèi)存中cache中的數(shù)值很大,這對使用同一臺(tái)機(jī)器調(diào)研其它的分布式文件系統(tǒng)來說,內(nèi)存條件沒有達(dá)到一致,會(huì)影響測試的結(jié)果。

  一、通常情況

  先來說說free命令:

  # free -m

  total used free shared buffers cached

  Mem: 249 163 86 0 10 94

  -/+ buffers/cache: 58 191

  Swap: 511 0 511

  其中:

  total 內(nèi)存總數(shù)

  used 已經(jīng)使用的內(nèi)存數(shù)

  free 空閑的內(nèi)存數(shù)

  shared 多個(gè)進(jìn)程共享的內(nèi)存總額

  buffers Buffer Cache和cached Page Cache 磁盤緩存的大小

  -buffers/cache (已用)的內(nèi)存數(shù):used - buffers - cached

  +buffers/cache(可用)的內(nèi)存數(shù):free + buffers + cached

  可用的memory=free memory+buffers+cached

  有了這個(gè)基礎(chǔ)后,可以得知,我現(xiàn)在used為163MB,free為86MB,buffer和cached分別為10MB,94MB。

  那么我們來看看,如果我執(zhí)行復(fù)制文件,內(nèi)存會(huì)發(fā)生什么變化。

  # cp -r /etc ~/test/

  # free -m

  total used free shared buffers cached

  Mem: 249 244 4 0 8 174

  -/+ buffers/cache: 62 187

  Swap: 511 0 511

  在我命令執(zhí)行結(jié)束后,used為244MB,free為4MB,buffers為8MB,cached為174MB,天吶,都被cached吃掉了。別緊張,這是為了提高文件讀取效率的做法。

  Linux cache占用大的原因:

  當(dāng)linux第一次讀取一個(gè)文件時(shí),一份放到內(nèi)存中cache起來,另一份放入運(yùn)行程序的內(nèi)存中,正常運(yùn)行,當(dāng)程序運(yùn)行完閉后,Cache中的那一份文件卻沒有釋放,第二次運(yùn)行的時(shí)候,系統(tǒng)首先查看在內(nèi)存中是否有次運(yùn)行時(shí)存在cache中的副本,如果有的話,直接從內(nèi)存中讀取,已達(dá)到提高速度的目的。

  清空cache的步驟:

  1,查看/proc/sys/vm/drop_caches的值(默認(rèn)是0)

  復(fù)制代碼代碼示例: cat /proc/sys/vm/drop_caches

  2,手動(dòng)執(zhí)行sync命令(sync 命令將所有未寫的系統(tǒng)緩沖區(qū)寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件)

  sync

  3,手動(dòng)修改/proc/sys/vm/drop_caches值為3

  復(fù)制代碼代碼示例: echo 3 > /proc/sys/vm/drop_caches

  參數(shù)說明:

  參數(shù)值說明

  To free pagecache: * echo 1 > /proc/sys/vm/drop_caches

  To free dentries(dentry索引結(jié)點(diǎn)的鏈接) and inodes: * echo 2 > /proc/sys/vm/drop_caches

  To free pagecache, dentries and inodes: * echo 3 > /proc/sys/vm/drop_caches

  dentries and inodes concepts

  看過“ Linux如何手動(dòng)清理內(nèi)存中cache信息 ”的人還看了:

1.如何正確查看Linux機(jī)器內(nèi)存使用情況

2.如何檢查Linux的內(nèi)存使用狀況

3.詳解Linux系統(tǒng)內(nèi)存知識(shí)及調(diào)優(yōu)方案

4.Varnish緩存服務(wù)器在linux系統(tǒng)下怎么安裝

5.linux怎么看內(nèi)存大小

Linux如何手動(dòng)清理內(nèi)存中cache信息

當(dāng)在Linux下頻繁存取文件后,物理內(nèi)存會(huì)很快被用光,當(dāng)程序結(jié)束后,內(nèi)存不會(huì)被正常釋放,而是一直作為caching。那么Linux如何手動(dòng)清理內(nèi)存中cache信息?下面跟著學(xué)習(xí)啦小編一起來了解一下吧。 Linux手動(dòng)清理內(nèi)存中cache信息方法 在做分布
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • linux怎么查看內(nèi)存條數(shù)及每根內(nèi)存大小
    linux怎么查看內(nèi)存條數(shù)及每根內(nèi)存大小

    在linux下如何查看內(nèi)存條數(shù)及內(nèi)存大小?最近看到不少用戶在問這個(gè)問題,針對這個(gè)情況,學(xué)習(xí)啦小編為大家分享下在linux下查看內(nèi)存條數(shù)及內(nèi)存大小的方法

  • linux怎么查看內(nèi)存型號(hào)
    linux怎么查看內(nèi)存型號(hào)

    因?yàn)榫W(wǎng)站開發(fā)的需求,需要對單位的服務(wù)器內(nèi)存進(jìn)行升級(jí)。那么在linux中怎么查看內(nèi)存型號(hào)呢?下面跟著學(xué)習(xí)啦小編一起來了解一下吧。 linux怎么查看內(nèi)存型

  • linux文件與文件夾權(quán)限怎么設(shè)置
    linux文件與文件夾權(quán)限怎么設(shè)置

    如果要把一個(gè)文件夾得所有內(nèi)容都共享給其他用戶,且讓他們都具有讀寫權(quán)限。用什么辦法呢?下面跟著學(xué)習(xí)啦小編一起來了解一下chmod命令的用法吧。 ch

  • Linux命令行怎么瀏覽天氣預(yù)報(bào)
    Linux命令行怎么瀏覽天氣預(yù)報(bào)

    網(wǎng)友問到小編我經(jīng)常在 Linux 桌面查看天氣預(yù)報(bào)。然而,是否有一種在終端環(huán)境下,不通過桌面小插件或者瀏覽器查詢天氣預(yù)報(bào)的方法?學(xué)習(xí)啦小編為大家分

646370