1. 程式人生 > >linux的top下釋放快取!!!!!!

linux的top下釋放快取!!!!!!

 細心的朋友會注意到,當你在Linux下頻繁存取檔案後,實體記憶體會很快被用光,當程式結束後,記憶體不會被正常釋放,而是一直作為caching.這個問題,貌似有不少人在問,不過都沒有看到有什麼很好解決的辦法.那麼我來談談這個問題.

先來說說free命令

[[email protected] ~]# free -m
           total     used     free     shared     buffers     cached
Mem:    249      163      86           0           10           94
-/+ buffers/cache: 58    191
Swap:   511        0        511

其中:

total 記憶體總數

used 已經使用的記憶體數

free 空閒的記憶體數

shared 多個程序共享的記憶體總額

buffers Buffer Cache和cached Page Cache 磁碟快取的大小

-buffers/cache 的記憶體數:used - buffers - cached

+buffers/cache 的記憶體數:free + buffers + cached

可用的memory=free memory+buffers+cached

有了這個基礎後,可以得知,我現在used為163MB,free為86,buffer和cached分別為10,94

那麼我們來看看,如果我執行復制檔案,記憶體會發生什麼變化.

[
[email protected]
~]# cp -r /etc ~/test/
[[email protected] ~]# free -m
total used free shared buffers cached
Mem: 249 244 4 0 8 174
-/+ buffers/cache: 62 187
Swap: 511 0 511

在我命令執行結束後,used為244MB,free為4MB,buffers為8MB,cached為174MB,天吶都被cached吃掉了.別緊張,這是為了提高檔案讀取效率的做法.

為了提高磁碟存取效率, Linux做了一些精心的設計, 除了對dentry進行快取(用於VFS,加速檔案路徑名到inode的轉換), 還採取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁碟塊的讀寫,後者針對檔案inode的讀寫。這些Cache有效縮短了 I/O系統呼叫(比如read,write,getdents)的時間。"

那麼有人說過段時間,linux會自動釋放掉所用的記憶體,我們使用free再來試試,看看是否有釋放>?

[
[email protected]
test]# free -m
total used free shared buffers cached
Mem: 249 244 5 0 8 174
-/+ buffers/cache: 61 188
Swap: 511 0 511

MS沒有任何變化,那麼我能否手動釋放掉這些記憶體呢???回答是可以的!

/proc是一個虛擬檔案系統,我們可以通過對它的讀寫操作做為與kernel實體間進行通訊的一種手段.也就是說可以通過修改/proc中的檔案,來對當前kernel的行為做出調整.那麼我們可以通過調整/proc/sys/vm/drop_caches來釋放記憶體.操作如下:

[
[email protected]
test]# cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_caches的值,預設為0

[[email protected] test]# sync

手動執行sync命令(描述:sync 命令執行 sync 子例程。如果必須停止系統,則執行 sync 命令以確保檔案系統的完整性。sync 命令將所有未寫的系統緩衝區寫到磁碟中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫對映檔案)

[[email protected] test]# echo 3 > /proc/sys/vm/drop_caches
[[email protected] test]# cat /proc/sys/vm/drop_caches
3

將/proc/sys/vm/drop_caches值設為3

[[email protected] test]# free -m
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511

再來執行free命令,發現現在的used為66MB,free為182MB,buffers為0MB,cached為11MB.那麼有效的釋放了buffer和cache.

有關/proc/sys/vm/drop_caches的用法在下面進行了說明

/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become
free.

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.

相關推薦

linux的top釋放快取

 細心的朋友會注意到,當你在Linux下頻繁存取檔案後,實體記憶體會很快被用光,當程式結束後,記憶體不會被正常釋放,而是一直作為caching.這個問題,貌似有不少人在問,不過都沒有看到有什麼很好解決的辦法.那麼我來談談這個問題. 先來說說free命令 [[email&

【高併發】高併發環境構建快取服務需要注意哪些問題?我和阿里P9聊了很久

## 寫在前面 > 週末,跟阿里的一個朋友(去年晉升為P9了)聊了很久,聊的內容幾乎全是技術,當然了,兩個技術男聊得最多的話題當然就是技術了。從基礎到架構,從演算法到AI,無所不談。中間又穿插著不少天馬行空的想象,雖然現在看起來不太實際,但是隨著技術的進步,相信五年、十年之後都會實現的。 > &

54一個大文件夾所有文件的讀取和檢索支持英文

data time ++ 檢索 pdm () new textfield ocx package lld; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel

Linux的打包與壓縮和tar命令

tar.gz 安裝 gin font log 針對 更新 mil emp 本文介紹了linux下的打包壓縮程序tar、gzip、gunzip、bzip2、bunzip2、 compress、uncompress、zip、unzip、rar、unrar程序,以及如何使用它們對

競賽 | 追趕新零售風口我們標註了34G真實線門店數據,等你pick

專業 最優 優先 揭秘 str 聯系人 案例 http jpg 零售行業正成為AI落地的新風口。 AI對零售業提高運營效率、降低成本、提高消費體驗等方面發揮了重要作用,也為新零售打開了更大的想象空間。 從Amazon、BAT這樣的互聯網企業,再到Walmart

golang如何仿django實現serializer,十分適用

如何實現serializer用golang 對返回的model進行 django裡的 toRepresentation()操作(update,pop,picked) 目前只針對json編碼方式,其他方式待跟進 serializer實現如下: package serializer

每秒上千訂單場景的分散式鎖高併發優化實踐【石杉的架構筆記】

歡迎關注個人公眾號:石杉的架構筆記(ID:shishan100) 週一至週五早8點半!精品技術文章準時送上! “上一篇文章我們聊了聊Redisson這個開源框架對Redis分散式鎖的實現原理,如果有不瞭解的兄弟可以看一下: 拜託,面試請不要再問我Redis分散式鎖的實現原理。 今天就給大家聊一個有

每秒上千訂單場景的分散式鎖高併發優化實踐

“上一篇文章我們聊了聊Redisson這個開源框架對Redis分散式鎖的實現原理,如果有不瞭解的兄弟可以看一下:拜託,面試請不要再問我Redis分散式鎖的實現原理。 今天就給大家聊一個有意思的話題:每秒上千訂單場景下,如何對分散式鎖的併發能力進行優化? 背景引入 首先,我們一起來看看這個問題的背景?

Java架構-每秒上千訂單場景的分散式鎖高併發優化實踐

“上一篇文章我們聊了聊Redisson這個開源框架對Redis分散式鎖的實現原理,如果有不瞭解的兄弟可以看一下:《拜託,面試請不要再問我Redis分散式鎖實現原理》。 今天就給大家聊一個有意思的話題:每秒上千訂單場景下,如何對分散式鎖的併發能力進行優化? 背景引入 首先,我們

linux vim的使用(學習必看重要)

vi與vim vi編輯器是所有Unix及Linux系統下標準的編輯器,他就相當於windows系統中的記事本一樣,它的強大不遜色於任何最新的文字編輯器。他是我們使用Linux系統不能缺少的工具。由於對Unix及Linux系統的任何版本,vi編輯器是完全相同的,學會它後,您將在Linux的世界裡暢行無

咱們聊聊如何把快取玩出一種境界

李釗 架構師小祕圈 今天 作者:咖啡拿鐵,現就職於美團點評,後端研發 來自:51cto技術棧(ID:blog51cto)   0 背景 在之前的文章中快取進化史介紹了某大型網際網路公司的快取架構和快取的進化歷史。俗話說得好,工欲善其事,必先利其器,有

吳亦凡新歌被架打榜資料也清零IPFS能拯救他嗎?

這幾天,在國外的網站上,有一個非常熱門的話題,那就是“吳亦凡是誰”!這個話題大概也會讓不少不明真相的吃瓜群眾紛紛蒙圈兒,其實這個問題還是要緣於最近的一個榜單。 11月2日,吳亦凡首張個人專輯《Antares》上線,並在全球246個地區發行。國內飯圈已經提

個月,Java 開啟收費模式

作者 | 劉欣 本文經授權轉自公眾號“碼農翻身” JDK 8 從 2019 年 1 月開始就要收費了,怎麼辦呢? 其實這個問題本身就是有問題的,因為收費的並不是 JDK 8 , 而是 JDK 8 後續的 Update (更新) 。 什麼是 Update?

Linux強制解除安裝已安裝的php

      原先在centOS6.6上已經安裝好了Lamp環境,因為php5.3版本比較低,就使用了remi源升級到5.5,然後問題就來了:專案中使用的php-xml在centOS下找不到yum安裝包

再也不用擔心拉重新整理,上拉載入啦-自定義ListView對上拉重新整理,上拉載入的詳解

前言:       看過許多下拉重新整理的例子,好多大牛們的程式碼寫的很完美,讓人羨慕嫉妒恨~~~,可是,對於下拉重新整理時的手勢操作卻沒有給出詳細的解釋,當一堆堆邏輯程式碼出來的時候,對於我們這些菜鳥來說,理解起來真是讓人腦子都大了。為了解放大腦(懶得自己進行全面分析),

解決vmwaretools安裝成功裝好後,hgfs資料夾看不到共享檔案的問題

 安裝環境:win10+vmware12.5pro+rehl6.0 1.安裝好vmware12.5pro後,這個虛擬機器的版本會自動安裝vmtools,不需要手動安裝。 2. 在虛擬機器下裝好rehl6.0,可以在/mnt目錄下看到hgfs資料夾,但裡面什麼也沒有,原因可能

ABP(現代ASP.NET樣板開發框架)主題線交流會(上海)開始報名了

ABP主題線下交流會(上海)開始報名了 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。它是採用最佳實踐和流行技術開發現代WEB應用程式的新起點。 活動簡介 大家期待已久的ABP線下交流活動馬上就要開始了,請大家確認一下時間和地點

centos7MFS分散式檔案系統-實測沒問題

實驗原理:MFS是一個具有容錯性的網路分散式檔案系統,它把資料分散在多個物理伺服器上,而呈現給使用者的則是一個統一的資源。實驗拓撲:192.168.80.181 Master server(主機名:www.aa.com)(元資料伺服器,在整個體系中負責管理檔案系統,維護元資料

ASP.NET網站開發--資料快取(未完,待續

1.資料快取快取是一種在計算機中廣泛運用提高效能的技術,在Web應用程式中,快取用於在Http請求間保留頁或資料,並無需重新創新的情況下多次使用,這樣做不僅節約了應用程式處理時間還節省了資源;快取:頁面輸出快取(前),應用程式資料快取兩種體系;頁面輸出快取(前):使用在不頻繁

ubuntu虛擬win7系統解決usb掛載問題

出現這種問題,很多人主要是摸不清方向,不知道到底是ubuntu這端出問題,還是windows端出問題! 其實很簡單。 1、首先在ubuntu一定要發現裝置。lsusb。 2、vitualbox要勾選 USB2.0(EHCI)控制器。      勾選EHCI後,出現無法啟動w