Free命令 Linux吃掉的記憶體

2021-09-02 01:40:38 字數 2268 閱讀 2922

1. free命令

含 義:使用free命令檢視我們實驗室檔案伺服器記憶體得到的結果

用法:free  -m

引數:-m選項表示使用mb為單位

mem: total(總量)= 3920mb,

used(已使用)= 1938mb,

free(空閒)= 1982mb,

shared(共享記憶體)= 0mb,

buffers = 497mb,

cached = 1235mb

第二行註解:

buffer 和 cache找不到合適的詞來翻譯,它們的區別在於:

即buffer用於存放要輸出到磁碟的資料,而cache是從磁碟讀出存放到記憶體中待今後使用的資料。它們的引入均是為了提供io的效能。

第三行註解:

輸出的第三行表示在第二行的基礎上-/+ buffers/cache得到的:

– buffers/cache used = mem used – buffers – cached = 1938mb – 497mb – 1235mb = 205mb

+ buffers/cache free = mem free + buffers + cached = 1982mb + 497mb + 1235mb = 3714mb

第四行註解:

輸出的第四行表示交換分割槽使用的情況:

swap:total(總量)= 4095mb

used(使用)= 0mb

free(空閒)= 4095mb

我們把記憶體分為三類,從使用者和作業系統的角度對其使用情況有不同的稱呼:

memory that is

you』d call it

linux calls it

used

used

free

used

not used for anything

free

free

上表中something代表的正是free命令中」buffers/cached」的記憶體,由於這塊記憶體從作業系統的角度確實被使用,但如果使用者要使用,這塊記憶體是可以很快被**被使用者程式使用,因此從使用者角度這塊記憶體應劃為空閒狀態。

再次回到free命令輸出的結果,第三行輸出的結果應該就能理解了,這行的數字表示從使用者角度看系統記憶體的使用情況。因此,如果你用top或者free命令檢視系統的記憶體還剩多少,其實你應該將空閒記憶體加上buffer/cached的記憶體,那才是實際系統空閒的記憶體。

linux

記憶體管理做了很多精心的設計,除了對dentry進行快取(用於vfs,加速檔案路徑名到inode的轉換),還採取了兩種主要cache方式:buffer cache和page cache,目的就是為了提公升磁碟io的效能。從低速的塊裝置上讀取資料會暫時儲存在記憶體中,即使資料在當時已經不再需要了,但在應用程式下一次訪問該資料時,它可以從記憶體中直接讀取,從而繞開低速的塊裝置,從而提高系統的整體效能。

而linux會充分利用這些空閒的記憶體,設計思想是記憶體空閒還不如拿來多快取一些資料,等下次程式再次訪問這些資料速度就快了,而如果程式要使用記憶體而系統中記憶體又不足時,這時不是使用交換分割槽,而是快速**部分快取,將它們留給使用者程式使用。

因此,可以看出,buffers/cached真是百益而無一害,真正的壞處可能讓使用者產生一種錯覺——linux耗記憶體!其實不然,linux並沒有吃掉你的記憶體,只要還未使用到交換分割槽,你的記憶體所剩無幾時,你應該感到慶幸,因為linux快取了大量的資料,也許下一次你就從中受益!

下面通過實驗來驗證上面的結論:

我們先後讀入乙個大檔案,比較兩次讀入的實踐:

1.首先生成乙個1g的大檔案

2.清空快取

3.讀入這個檔案,測試消耗的時間

4.再次讀入該檔案,測試消耗的時間

從上面看出,第一次讀這個1g的檔案大約耗時18s,而第二次再次讀的時候,只耗時0.3s,足足提公升60倍!

Linux中的free命令

分類 linux技術 2014 03 05 14 51 8031人閱讀收藏 舉報解釋一下linux上free命令的輸出。下面是free的執行結果,一共有4行。為了方便說明,我加上了列號。這樣可以把free的輸出看成乙個二維陣列fo free output 例如 free的輸出一共有四行,第四行為交換...

linux上的free命令

原文 解釋一下linux上free命令的輸出。下面是free的執行結果,一共有4行。為了方便說明,我加上了列號。這樣可以把free的輸出看成乙個二維陣列fo free output 例如 1 2 3 4 5 6 1 total used free shared buffers cached 2 me...

Linux的free命令詳解

我告訴有朋友我一直用linux.他問我了一下我為什麼linux使用的記憶體這麼高.他講他1g的內在free才232m.講win xp才用200m的樣子.其實啊.linux的記憶體是很說究的.如下顯示free是顯示的當前記憶體的使用,m的意思是m位元組來顯示內容.我們來一起看看.free m tota...