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...