Linux上的free命令簡介

ref:https://www.cnblogs.com/williamjie/p/9233867.html

每次使用free時都比較迷惑,對于上面的內(nèi)容一直都不是很清楚,今天仔細(xì)查了以下,和大家一起分享以下:?

先看一下free的運行結(jié)果:

free打印出的內(nèi)存信息主要分為兩種,一種是安裝的內(nèi)存,一種是用磁盤虛擬的內(nèi)存,就是這里的Swap,相信裝過Linux系統(tǒng)的同學(xué)肯定不陌生交換分區(qū),這里Swap大小就是我們分區(qū)的時候分配的大小。

下面來分別解釋以下每個列的意思:

total:去掉為硬件和操作系統(tǒng)保留的內(nèi)存后剩余的內(nèi)存總量。許多人奇怪自己的電腦安裝了一共8G的內(nèi)存,但是顯示總共只有七點幾G的,現(xiàn)在應(yīng)該沒什么疑惑了把,不管Linux還是Windows都會有部分內(nèi)存是保留給硬件和操作系統(tǒng)的!

userd:當(dāng)前已使用的內(nèi)存總量。

free:空閑的或可以使用的內(nèi)存總量

shared:共享內(nèi)存大小,主要用于進程間通信buff(buffers):主要用于塊設(shè)備數(shù)據(jù)緩沖,例如記錄文件系統(tǒng)的metadata(目錄、權(quán)限等等信息)。

cache:主要用于文件內(nèi)容緩沖

available:可以使用的內(nèi)存總量

buffers與cached的區(qū)別:

對于應(yīng)用程序來說,buffers/cached 是等于可用的,因為buffer/cached是為了提高文件讀取的性能,當(dāng)應(yīng)用程序需在用到內(nèi)存的時候,buffer/cached會很快地被回收。所以從應(yīng)用程序的角度來說 可用內(nèi)存=系統(tǒng)free memory+buffers+cached.buffers是指用來給塊設(shè)備做的緩沖大小,他只記錄文件系統(tǒng)的metadata以及 trackingin-flight pages,cached是用來給文件做緩沖。那就是說:buffers是用來存儲,目錄里面有什么內(nèi)容,權(quán)限等等,而cached直接用來記憶我們打開的文件的。關(guān)于為什么需要緩沖,這里簡單解釋以下:我們知道,在CPU,內(nèi)存,外存的運行速度之間,存在這樣的關(guān)系:CPU比內(nèi)存快100倍,內(nèi)存比磁盤快十萬倍,且他們之間的差距還在增大!因此為了協(xié)調(diào)他們速度之間的不匹配,緩存就由此而生,在CPU內(nèi)部的緩存,為了協(xié)調(diào)CPU和內(nèi)存之間速度的不匹配,而內(nèi)存的產(chǎn)生也是為了協(xié)調(diào)磁盤和CPU速度的不匹配。有個這樣的一個形象的描述:把CPU的一個時鐘周期看作一秒。那么,從L1cache(CPU的一級緩存)讀取信息就好像是拿起桌上的一張草稿紙(3秒);從L2cache(CPU的二級緩存)讀取信息則是從身邊的書架上取出一本書(14秒);而從主存中讀取信息則相當(dāng)于走到辦公樓下去買個零食(4分鐘),而等待硬盤尋道的時間相當(dāng)于離開辦公大樓并開始長達一年零三個月的環(huán)球旅行,而這僅僅是尋道時間!

free的詳細(xì)使用方法

語 法: free [-hbkmotV][-s <間隔秒數(shù)>]

補充說明:free指令會顯示內(nèi)存的使用情況,包括實體內(nèi)存,虛擬的交換文件內(nèi)存,共享內(nèi)存區(qū)段,以及系統(tǒng)核心使用的緩沖區(qū)等。

參 數(shù):

-b 以Byte為單位顯示內(nèi)存使用情況。

-k 以KB為單位顯示內(nèi)存使用情況。

-m 以MB為單位顯示內(nèi)存使用情況。

-h? 以比較人性化的方式顯示內(nèi)存使用情況。

-o 不顯示緩沖區(qū)調(diào)節(jié)列。

-s? <間隔秒數(shù)> 持續(xù)觀察內(nèi)存使用狀況。

-t 顯示內(nèi)存總和列。

-V 顯示版本信息。?

free的實現(xiàn)方式

關(guān)于free的實現(xiàn),其實是調(diào)用linux下的/proc/meminfo文件可以對比一下:zhoupan@Lenovo-G485:~$ free? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available

Mem: 3636688? 2286620? 240768? 79560? 1109300? 1210716

Swap: 1998844? ? ? ? ? ? 0? 1998844

zhoupan@Lenovo-G485:~$ cat /proc/meminfo

MemTotal:3636688 kB

MemFree:239996 kB

MemAvailable:1209972 kB

Buffers:96424 kB

Cached:912480 kB

SwapCached:0 kB

Active:2535176 kB

Inactive:646160 kB

Active(anon):2174012 kB

Inactive(anon):77972 kB

Active(file):361164 kB

Inactive(file):568188 kB

Unevictable:448 kB

Mlocked:448 kB

SwapTotal:1998844 kB

SwapFree:1998844 kB

Dirty:60 kBWriteback:0 kB

AnonPages:2172872 kB

Mapped:397968 kB

Shmem:79560 kB

Slab:100424 kB

SReclaimable:68764 kB

SUnreclaim:31660 kB

KernelStack:8896 kB

PageTables:42788 kB

NFS_Unstable:0 kB

Bounce:0 kB

WritebackTmp:0 kB

CommitLimit:3817188 kB

Committed_AS:6151536 kB

VmallocTotal:34359738367 kB

VmallocUsed:0 kB

VmallocChunk:0 kB

HardwareCorrupted:0 kB

AnonHugePages:1112064 kB

CmaTotal:0 kB

CmaFree:0 kB

HugePages_Total:0

HugePages_Free:0

HugePages_Rsvd:0

HugePages_Surp:0

Hugepagesize:2048 kB

DirectMap4k:175872 kB

DirectMap2M:3602432 kB

DirectMap1G:0 kB

>>由于系統(tǒng)在高速的運轉(zhuǎn),可能存在部分?jǐn)?shù)據(jù)不相同

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容