天天看點

Linux free 指令大揭秘

文章目錄

        • 1.Mem 解析
          • buffers 與cached的差別?
        • 2.-/+ buffers/cache 解析
        • 3.Swap 解析

free是一個可以為我們提供linux機器可用RAM(記憶體)很有價值的一個常用指令,很多linux新手或者運維人員會誤解它,讓我們一起來揭開它的神秘面紗吧!

Linux free 指令大揭秘

free的輸出結果如下,預設表示這些數字都是以KB為機關的,如果想輸出可讀的可以加上-h 、-m等參數

[[email protected] ~]$ free
             total       used       free     shared    buffers     cached
Mem:      16467080   10999040    5468040        544     231280     646008
-/+ buffers/cache:   10121752    6345328
Swap:            0          0          0
           

1.Mem 解析

對應的數值 參數名稱 含義
16467080 total 目前機器總共可用的記憶體數,由于使用了-m 參數,是以該數值是以MB為機關
10999040 used 已經被使用的記憶體,包含buffers和cached
5468040 free 空餘的記憶體
544 shared 表示多個程序共享記憶體
231280 buffers 在linux系統中為不同應用緩沖資料所使用的記憶體數
646008 cached 為将來快速通路為目的而緩存資料使用的空間
buffers 與cached的差別?

buffers:是存儲特定應用程式資料的臨時位置,任何其他應用程式都不會使用此資料。類似于帶寬,當您嘗試通過

網絡發送大量資料時,如果您得帶寬很小,隻能發送很少的資料時,系統會将這些還未發送的資料儲存在buffer裡面,

以便可以以較低的速度不斷的發送資料。

cached:是存儲常用的資料以便更快通路的位置。

不同點:cache裡面的資料可以多次使用,而buffer是一次性的。

相同點:兩者都是臨時存儲,用于資料處理。

2.-/+ buffers/cache 解析

對應的數值 參數名稱 含義
10121752 - buffers/cache 真實被系統或應用程式所使用的記憶體,計算公式:used - (buffers + cache),10999040 - 231280 - 646008= 10121752
6345328 + buffers/cache 真實可以使用的記憶體,計算公式:total - (上面真實被使用掉的記憶體),16467080- 10121752 = 6345328

tips:

1.為什麼在Mem:那一行中的used 顯示的是10999040呢?是因為linux 把cached 和buffered 記憶體也統計到裡面去了,當時将來如果任何應用程式想使用記憶體,linux将為您釋放掉cached和buffered。

2.不要抱怨linux占用了您太多的記憶體,這是誤解free 這個老鐵了,如果有人問您現在伺服器可用的記憶體是多少時,您應該說6345328 kb而不是第一行的10999040 kb。

3.Swap 解析

Swap 行辨別交換詳細資訊,如swap的總大小,已經使用的swap大小和空閑的swap空間,Swap是在磁盤上建立的虛拟記憶體,可虛拟增加記憶體大小。

繼續閱讀