free 命令可以顯示系統已用和空閒的記憶體情況。包括物理記憶體、互動區記憶體(swap)和核心緩衝區記憶體(buffer)。共享記憶體將被忽略。在linux系統監控的工具中,free命令是最經常使用的命令之一。
free [option]-b # 以byte為單位顯示記憶體使用情況
-k # 以kb為單位顯示記憶體使用情況
-m # 以mb為單位顯示記憶體使用情況
-g # 以gb為單位顯示記憶體使用情況
-h # 自動轉換單位(最常用)
-o # 不顯示緩衝區調節列
-s 《間隔秒數》 # 持續觀察記憶體使用狀況
-t # 顯示記憶體總和列
-v # 顯示版本資訊
在終端輸入free。結果如下:
[@bjzw_106_203 ~]# freetotal used
free
shared buffers cached
mem:
8182340
7909480
272860
0463820
5228244
-/+ buffers/cache: 2217416
5964924
swap:
1048568
2612
1045956
mem :表示物理記憶體的統計(系統已使用、空閒的記憶體)。
-/+ buffers/cache:應用程式已使用的、空閒的物理記憶體。
swap:交換分割槽的記憶體統計。
total:表示物理記憶體總量(total = used + free)
used:表示總計分配給快取(包含buffers 與cache )使用的數量,但其中可能部分快取並未實際使用。
free:未被分配的記憶體。
shared:多個程序共享的記憶體總額。
buffers:系統分配但未被使用的buffers 數量。
cached:系統分配但未被使用的cache 數量。
強調一下buffers和cached的區別:
對於應用程式來說:buffers/cached 是等於可用的,因為buffer/cached是為了提高檔案讀取的效能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被**。可用記憶體=系統free memory+buffers+cached。
buffers:是指用來給塊裝置做的緩衝大小,他只記錄檔案系統的metadata以及 tracking in-flight pages。也就是說,buffers是用來儲存,目錄裡面有什麼內容,許可權等等。
cached:直接用來記憶我們開啟的檔案,是用來給檔案做緩衝的。
綜上所述,
對作業系統來講是:mem的引數buffers/cached 都是屬於被使用,所以它認為free只有272860;
對應用程式來講是:(-/+ buffers/cach).buffers/cached 是等同可用的,因為buffer/cached是為了提高程式執行的效能,當程式使用記憶體時,buffer/cached會很快地被使用。以應用來看,以(-/+ buffers/cache)的free和used為主.所以我們看這個就好了。
當可用記憶體少於額定值的時候,就會開會進行交換。額定值被定義在/proc/meminfo 這個檔案。
[@bjzw_106_203 ~]# cat /proc/meminfomemtotal:
8182340
kbmemfree:
346672
kbbuffers:
463956
kbcached:
5156992
kbswapcached: 0kb
active:
3027644
kbinactive:
4170020
kbhightotal: 0kb
highfree: 0kb
lowtotal:
8182340
kblowfree:
346672
kbswaptotal:
1048568
kbswapfree:
1045956
kbdirty:
48kb
writeback: 0kb
anonpages:
1576704
kb23552
kbslab:
422056
kbpagetables:
164404
kbnfs_unstable: 0kb
bounce: 0kb
commitlimit:
5139736
kbcommitted_as:
5433220
kbvmalloctotal:
34359738367
kbvmallocused:
1260
kbvmallocchunk:
34359720023
kbhugepages_total:
0hugepages_free:
0hugepages_rsvd:
0hugepagesize:
2048 kb
交換將通過三個途徑來減少系統中使用的物理頁面的個數:
(1) 減少緩衝與頁面cache的大小;
(2) 將系統v型別的記憶體頁面交換出去;
少量地使用swap是不會影響到系統效能的。
追蹤linux系統的記憶體使用一直是個難題,很多人試著把能想到的各種記憶體消耗都加在一起,kernel text、kernel modules、buffer、cache、slab、page table、process rss…等等,卻總是與物理記憶體的大小對不上,這是為什麼呢?因為linux kernel並沒有滴水不漏地統計所有的記憶體分配,kernel動態分配的記憶體中就有一部分沒有計入/proc/meminfo中。
linux記憶體檢視free
linux記憶體檢視 free 命令 自 http blog.sina.com.cn u 4a200e2b0100060d 在linux下檢視記憶體我們一般用command free root nonamelinux free total used free shared buffers cache...
Linux檢視記憶體命令 free
from free命令可以顯示linux系統中空閒的 已用的物理記憶體及swap記憶體,及被核心使用的buffer。在linux系統監控的工具中,free命令是最經常使用的命令之一。1 命令格式 free 引數 2 命令功能 free 命令顯示系統使用和空閒的記憶體情況,包括物理記憶體 互動區記憶體...
linux的記憶體檢視命令 free
我們一般用free命令 root scs 2 tmp free total used free shared buffers cached mem 3266180 3250004 16176 0 110652 2668236 buffers cache 471116 2795064 swap 204...