Linux中 free 命令詳解

2021-08-22 00:09:52 字數 999 閱讀 8404

free命令可以用來檢視系統記憶體使用情況。我一般習慣-m引數以mb的方式檢視

其他引數
解釋:所以,可以供程式使用的記憶體,應該看+buffers/cache(),而不是free。那明明已經開始使用 swap了,怎麼能說記憶體還充足呢?

照我的理解是,系統在分配記憶體的時候,如果發現記憶體不足,會釋放一批舊的cache,把空間騰出來給新申請的程序用, 有時候釋放不充分或者不及時,於是開始使用到swap了!

手動釋放快取

使用sync命令可以把buffer強制寫入硬碟,有時候怕配置沒有生效,會使用它強制寫到硬碟。如果系統突然斷電,buffer的資料沒儲存,是會丟失的!其實,大多數情況下,占用記憶體的都是cache,而不是buffer!

下面來說說怎麼使用sysctl強制釋放快取,和記憶體釋放相關的核心引數是vm.drop_caches,vm.drop_caches可以設定為0、1、2、3。

說明

0 採取措施之前的預設值

1 釋放pagecache

2 釋放dentries 和 inodes

3 釋放pagecache、dentries和inodes

實際操作可以使用如下的sysctl,也可以使用echo 3 > /proc/sys/vm/drop_caches,效果一樣!

不過這個還是會慢慢漲起來的!

linux命令free詳解

前段時間有個專案的用c寫的,效能測試時發現記憶體洩露問題。關於怎麼觀察記憶體使用問題,free是很好用的乙個命令。bash 3.00 free total used free shared buffers cached mem 1572988 1509260 63728 0 62800 277888...

Linux的free命令詳解

我告訴有朋友我一直用linux.他問我了一下我為什麼linux使用的記憶體這麼高.他講他1g的內在free才232m.講win xp才用200m的樣子.其實啊.linux的記憶體是很說究的.如下顯示free是顯示的當前記憶體的使用,m的意思是m位元組來顯示內容.我們來一起看看.free m tota...

linux的free命令詳解

我告訴有朋友我一直用linux.他問我了一下我為什麼linux使用的記憶體這麼高.他講他1g的內在free才232m.講win xp才用200m的樣子.其實啊.linux的記憶體是很說究的.如下顯示free是顯示的當前記憶體的使用,m的意思是m位元組來顯示內容.我們來一起看看.free m tota...