一天一條Linux指令 free

2021-07-24 07:55:15 字數 4035 閱讀 1755

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...