Linux free命令解釋

2021-07-07 10:52:48 字數 2159 閱讀 3886

free 是linux 檢視作業系統整體記憶體使用情況的最常用的命令。 但是free命令中的具體field代表哪些含義,這些field之間的具體關係是什麼。恐怕還是有部分同學不太清楚。

預設的單位是kbyte。

[ansen@localhost ~]$ free

total          used           free         shared    buffers     cached

mem:       2065488     593352    1472136       1684      25308     278444

-/+ buffers/cache:       289600    1775888

swap:      1572860          0    1572860

第一行綠色數字:2065488    : 全部記憶體容量 2g

593352           :   占用記憶體容量

1472136           :    剩餘記憶體容量

1684             : 共享記憶體容量

25308       : buffer 記憶體使用量

278444               :  cache 記憶體佔用量

其中:全部記憶體容量 2g = 占用記憶體容量  + 剩餘記憶體容量.

第二行紅色數字:

289600    =  占用記憶體容量(593352) - buffer(25308) - cached(278444), 其實就是用來儲存**,資料,棧,堆(包含作業系統和使用者程式)的記憶體。

1775888    = 剩餘記憶體容量(1472136)+bufer(

25308) +cached(

278444),buffer 與cache的目的是為了提高io效率,是具有檔案背景的記憶體page,可以被替換出記憶體。

第三行藍色數字:

swap 容量, 對於有檔案背景的記憶體(如**,文字檔案等)在記憶體不足的時候可以替換到檔案系統,等真正執行時再從檔案系統載入,但是對於資料(例如資料段,棧和堆的資料等)並沒有檔案背景。swap 即linux 有意的為資料資訊加的檔案背景,這樣在記憶體不足的時候記憶體的資料就可以被swap到檔案系統的swap區,而等到真正執行時候才在檔案系統載入。

下面的例子顯示了cached 欄位的變化,第一次執行查詢時間25s, 第二次查詢時間縮短為6s, 因為經過第一次查詢檔案被快取,第二次io 速度提高。同時可以看到cached記憶體的顯著增加。

[ansen@localhost ~]$ free

total       used             free            shared    buffers     cached

mem:       2065488     593352    1472136       1684      25308     278444

-/+ buffers/cache:       289600    1775888

swap:      1572860          0          1572860

[ansen@localhost training]$ time find . -name "*.*" -exec grep "sem" {} \;

.............

real

0m25.876s

user

0m1.909s

sys0m6.124s

[ansen@localhost training]$ free

total       used       free     shared    buffers     cached

mem:       2065488     629652    1435836       1860      34224     319164

-/+ buffers/cache:     276264    1789224

swap:      1572860          0    1572860

[ansen@localhost training]$ time find . -name "*.*" -exec grep "sem" {} \;

.............

real  0m6.663s

user0m0.660s

sys      0m3.216s

Linux free命令詳解

free命令統計出來的記憶體非常具有迷惑性,現在總結如下 第一部分mem行 total 記憶體總數 7863m userd 已經使用的記憶體使用總數 7039m free 剩餘的記憶體總數 823m share 當前已經廢棄不用的記憶體總數 0 buffers 當前被使用的快取大小 583m cac...

linux free命令詳解

free m total used free shared buffers cached mem 1002 769 232 0 62 421 buffers cache 286 715 swap 1153 0 1153 第一部分mem行 total 記憶體總數 1002m used 已經使用的記憶體...

linux free命令詳解

1 free命令功能 free 命令顯示系統使用和空閒的記憶體情況,包括物理記憶體 互動區記憶體 swap 和核心緩衝區記憶體。共享記憶體將被忽略 2 命令格式 free 引數 3 命令引數 b 以byte為單位顯示記憶體使用情況。k 以kb為單位顯示記憶體使用情況。m 以mb為單位顯示記憶體使用情...