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