free命令用來顯示記憶體使用情況。display information about free and used memory on the system。
b 以位元組為單位顯示。
-k 以k位元組為單位顯示。預設顯示。
-m 以兆位元組為單位顯示。
-s 每隔多少秒重複執行。可編寫乙個指令碼用於監控。
[root@sunrise root]# free
total used free shared buffers cached
mem: 4091428 4073120 18308 0 112784 2564792
-/+ buffers/cache: 1395544 2695884
swap: 8385888 0 8385888
[root@sunrise root]#
數值的單位是kbytes。
mem開頭的行:
total是指記憶體總數。比如這台機器4g記憶體,實際上已經扣除掉了作為視訊記憶體的部分。
used是指作業系統已經使用的記憶體數。這部分既包括作業系統本身使用的部分,也包括應用程式已經使用的部分,還包括快取的部分。
free是指作業系統還沒有使用的記憶體數。我們通常看到這部分比較小。
shared已經廢棄不用,總是顯示0。
buffers和cached是指作為快取的記憶體數。
-/+ buffers/cache開頭的行:(重點看這行)
used列是指應用程式總共使用的記憶體數。等於mem.used-mem.buffers-mem.cached。
free列是指應用程式還未使用的記憶體數。這個資料才是我們需要關注的空閒可用記憶體數。等於mem.free+mem.buffers+mem.cached。
如果此行中free列的資料太小,那麼就需要優化程式或者增加物理記憶體了。
[root@bbqztweb root]# free -s 60
total used free shared buffers cached
mem: 1016532 996320 20212 0 97964 166716
-/+ buffers/cache: 731640 284892
swap: 2040244 281544 1758700
total used free shared buffers cached
mem: 1016532 996328 20204 0 97964 166724
-/+ buffers/cache: 731640 284892
swap: 2040244 281544 1758700
total used free shared buffers cached
mem: 1016532 996460 20072 0 97964 166724
-/+ buffers/cache: 731772 284760
swap: 2040244 281544 1758700
total used free shared buffers cached
mem: 1016532 996316 20216 0 97964 166740
-/+ buffers/cache: 731612 284920
swap: 2040244 281544 1758700
[root@bbqztweb root]#
free命令實際上是根據/proc/meminfo生成的。-/+ buffers/cache:這行是計算出來的。
[root@bbqztweb root]#free -b; cat /proc/meminfo
total used free shared buffers cached
mem: 1040928768 1017909248 23019520 0 100220928 172040192
-/+ buffers/cache: 745648128 295280640
swap: 2089209856 288301056 1800908800
total: used: free: shared: buffers: cached:
mem: 1040928768 1017909248 23019520 0 100220928 371302400
swap: 2089209856 288301056 1800908800
memtotal: 1016532 kb
memfree: 22480 kb
memshared: 0 kb
buffers: 97872 kb
cached: 168008 kb
swapcached: 194592 kb
active: 667076 kb
activeanon: 510760 kb
activecache: 156316 kb
inact_dirty: 125964 kb
inact_laundry: 20508 kb
inact_clean: 17308 kb
inact_target: 166168 kb
hightotal: 122044 kb
highfree: 5564 kb
lowtotal: 894488 kb
lowfree: 16916 kb
swaptotal: 2040244 kb
swapfree: 1758700 kb
commitlimit: 2548508 kb
committed_as: 1063004 kb
hugepages_total: 0
hugepages_free: 0
hugepagesize: 2048 kb
[root@bbqztweb root]#
[root@bbqztweb root]# free -b -s 1 | grep 'buffers/cache:'
-/+ buffers/cache: 745574400 295354368
-/+ buffers/cache: 745574400 295354368
-/+ buffers/cache: 745574400 295354368
ctrl+c
[root@bbqztweb root]#free -b -s 1 | grep 'buffers/cache:' | awk ''
ctrl+c
怪哉,沒有顯示任何輸出。但下面的是可以輸出東西的,難道管道線多了就不靈了?why?
[root@bbqztweb root]# free -b -s 1 | awk ''
shared
22200320
295211008
1800908800
shared
22200320
295211008
1800908800
[root@bbqztweb root]#
一天一條Linux指令 cd
嵌入式開發需要不斷積累linux相關知識,所以在此天天不厭其煩 日積月累。cd change directory 命令是linux中最常用命令之一,我覺得另乙個應該是ls 後續介紹 主要功能是跳轉到cd命令指定目錄。cd命令格式 cd l p dir 常用cd命令 1.跳轉到指定目錄 cd dir ...
一天一條Linux指令 apt
由於昨天去assem公司除錯電路,接觸linux下依賴包的安裝大牛,遂整理了一下apt命令。apt get命令本身並不具有管理軟體包功能,只是提供了乙個軟體包管理的命令列平台。在這個平台上使用更豐富的子命令,完成具體的管理任務。apt get命令的一般語法格式為 apt get subcommand...
一天一條Linux指令 find
前言 我們為什麼要學會使用find命令?每一種作業系統都有成千上萬的檔案組成,對於linux這樣 一切皆檔案 的作業系統來說更不例外,大家應該都能很輕鬆使用windows下的檔案查詢功能,但是對linux這一功能可能並不是很熟悉,其實想玩linux的你更要牢牢掌握這個命令,因為linux不像wind...