free命令可以顯示當前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩衝區。
注:記憶體資訊儲存在/proc/meminfo檔案中。
選項:
示例:-b:以byte為單位顯示記憶體使用情況;
-k:以kb為單位顯示記憶體使用情況;
-m:以mb為單位顯示記憶體使用情況;
-o:不顯示緩衝區調節列;
-s《間隔秒數》:持續觀察記憶體使用狀況;
-t:顯示記憶體總和列;
-v:顯示版本資訊。
第一部分mem行解釋:free -m
total used free shared buffers cached
mem: 3690 3023 666 0 406 1709
-/+ buffers/cache:
9072783
swap: 4094 0 4094
關係:total = used + freetotal:記憶體總數;
used:已經使用的記憶體數;
free:空閒的記憶體數;
shared:當前已經廢棄不用;
buffers buffer:緩衝記憶體數;
cached cache:快取記憶體數。
第二部分(-/+ 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...