Linux資料之free命令

2021-08-14 12:36:12 字數 1769 閱讀 4345

free命令可以顯示當前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩衝區。

注:記憶體資訊儲存在/proc/meminfo檔案中。

選項:

-b:以byte為單位顯示記憶體使用情況;

-k:以kb為單位顯示記憶體使用情況;

-m:以mb為單位顯示記憶體使用情況;

-o:不顯示緩衝區調節列;

-s《間隔秒數》:持續觀察記憶體使用狀況;

-t:顯示記憶體總和列;

-v:顯示版本資訊。

示例:

free -m

total used free shared buffers cached

mem: 3690 3023 666 0 406 1709

-/+ buffers/cache:

9072783

swap: 4094 0 4094

第一部分mem行解釋:

total:記憶體總數;

used:已經使用的記憶體數;

free:空閒的記憶體數;

shared:當前已經廢棄不用;

buffers buffer:緩衝記憶體數;

cached cache:快取記憶體數。

關係:total = used + free

第二部分(-/+ buffers/cache)解釋:

(-buffers/cache) used記憶體數:第一部分mem行中的 used – buffers – cached

(+buffers/cache) free記憶體數: 第一部分mem行中的 free + buffers + cached

1、-buffers/cache反映的是被程式實實在在吃掉的記憶體

2、+buffers/cache反映的是可以挪用的記憶體總數。

第三部分是指交換分割槽。

問題:

1、cache和buffer區別:

buffer(緩衝區)是系統兩端處理速度平衡(從長時間尺度上看)時使用的。它的引入是為了減小短期內突發i/o的影響,起到流量整形的作用。比如生產者——消費者問題,他們產生和消耗資源的速度大體接近,加乙個buffer可以抵消掉資源剛產生/消耗時的突然變化。buffer可以用來給塊裝置做緩衝。
cache(快取)則是系統兩端處理速度不匹配時的一種折衷策略。因為cpu和memory之間的速度差異越來越大,所以人們充分利用資料的區域性性(locality)特徵,通過使用儲存系統分級(memory hierarchy)的策略來減小這種差異帶來的影響。cache主要用來給檔案做快取。
tlb(translation lookaside buffer,翻譯後備緩衝器)名字起錯了,其實它是乙個cache.

2、現在只有個別程式在執行,為什麼會占用大量的cache快取

linux中,cache會快取被程式使用的檔案。當程式執行結束時,系統不會去清理cache中的內容(便於程式下次啟動時快速載入對應的檔案),直到可用記憶體不足時才會去清理。
3、記憶體為4g,但free命令中顯示的total不足4g

free命令顯示的總記憶體扣除掉了作為視訊記憶體的部分。

Linux命令之free命令

free命令可以顯示當前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩衝區。free 選項 b 以byte為單位顯示記憶體使用情況 k 以kb為單位顯示記憶體使用情況 m 以mb為單位顯示記憶體使用情況 o 不顯示緩衝區調節列 s 間隔秒數 持續觀察記憶體使用狀況 t 顯示記憶體總...

linux命令總結free命令

free 命令是乙個顯示系統中空閒和已用記憶體大小的工具。free 命令的輸出和 top 命令相似。大多數linux發行版已經含有 free 命令。想要執行,只需在控制台輸入free 即可。不帶選項執行會顯示乙個以kb為單位的預設輸出。root finish scripts free total u...

linux命令free詳解

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