free命令的一些說明

2021-12-30 12:51:59 字數 946 閱讀 3172

free命令用了很久了,但是知其然有些不知其所以然。今天為了追查乙個記憶體洩漏問題,特意去仔細研究了一下。

一般來說,該命令輸出如下:

shell**  

total       used       free     shared    buffers     cached  

mem:       2059500    2042852      16648          0      26708     303484  

-/+ buffers/cache:    1712660     346840  

swap:      2064376     684460    1379916  

www.2cto.com  

先解釋一下字段:

total: 總可用物理記憶體數。linux核心會占去一部分。

used: 已經使用記憶體數。更加確切地說,應該是含有資料的記憶體數。

free:空餘記憶體數。更加確切地說,是沒有資料空的記憶體數。

shared: 共享記憶體數。被多個應用(程序)共享的記憶體。

buffers:這個其實是寫入用的快取。這裡涉及到linux的i/o策略。 一些資料暫時寫入記憶體中,而不直接寫到硬碟上。當做flush操作的時候,再把資料寫入硬碟。寫入以後,buffer是可以釋放的。因此buffer其實是一種可以供徵集的記憶體。  www.2cto.com  

cached: 提供讀取操作用的快取。 依然是涉及到i/o策略。預先讀取的資料,如果暫時不使用,就先快取在記憶體中供以後讀取呼叫(如果記憶體有空閒)。cached也是可以隨時釋放的。且比buffer更加容易徵集。

由此可知,cached和buffered都是可用記憶體。

因此,真正使用的記憶體,實質是used - cached - buffers. 

實際可用空餘記憶體是free + cached + buffers.   

作者 allenzhang

Linux下的一些命令說明

linux下新增一使用者sunrier並設定密碼為redhat su 輸入密碼 pwconv useradd sunrier pwunconv pwconv passwd sunrier redhat pwunconv 改變檔案的擁有者 chown r user group file user 新的...

ALV的一些說明

abap alv alv是系統的一種網格的顯示方式,這種方式帶有彙總 排序 篩選等功能,alv格式的資料是以單元格為單位顯示,不象一般的寫屏方式拷出來或是匯出成檔案不同列的內容粘在一塊,這種方式便於資料匯出來放在電子 裡進行加工.slis fieldcat alv中的部分欄位及意義 fieldnam...

string npos的一些說明

string npos的一些說明 static const size t npos 1 表示 size t 的最大值 maximum value for size t 如果對 1表示size t的最大值有疑問可以採用如下 驗證 include include include using namesp...