Linux命令之free命令使用詳解
作用:查看內(nèi)存使用情況。
參數(shù):
- -b 以
Byte為單位顯示 - -k 以
KB為單位顯示m 以MB為單位顯示 - -h 自動計算單位(最大保留三位數(shù))
- -s<間隔秒數(shù)> 持續(xù)觀察(間隔多少秒查看一次內(nèi)存)
- -t 顯示總和列
- -V 顯示版本
一、常用操作
1)查看內(nèi)存使用情況,以MB為單位

2)每隔5秒查看一次內(nèi)存使用情況(Ctrl + c 退出查看)
提示:free不是向top命令一樣動態(tài)變化,本質(zhì)上就是每隔一定時間執(zhí)行一次查詢操作。

二、字段解釋
不加參數(shù)時,默認以KB為單位顯示內(nèi)存大小。

6個字段列的意思分別是:
- total:系統(tǒng)內(nèi)存總大小
- used:已使用內(nèi)存
- free:可用內(nèi)存(剩余多少內(nèi)存)
- shared:多個進程共享的內(nèi)存
- buff/cache:系統(tǒng)緩存大小
- available:還可以被使用的內(nèi)存
左側兩個字段行的意思分別是:
- Mem:物理內(nèi)存空間使用情況,通常意義上的物理內(nèi)存分區(qū)
- Swap:交換空間使用情況(交換分區(qū)),物理內(nèi)存不夠用時,臨時存放數(shù)據(jù)。
1、free和available的區(qū)別?
free 和 available 這兩個字段都有“剩余內(nèi)存”的意思,很多同學可能會對此產(chǎn)生疑惑,這里給大家簡單解釋一下這兩個字段的區(qū)別:
- free是未被使用的內(nèi)存
- available是程序“認為”還可以被使用的內(nèi)存
Linux為了提高讀寫性能,會拿出一部分內(nèi)存來臨時存儲數(shù)據(jù)(也就是系統(tǒng)緩存緩存),當剩余的內(nèi)存(free)不夠的時候,就會釋放一部分緩存(buff/cache)來滿足程序的使用需求。
即:available = free + buff/chche(部分可以被釋放的緩存)
2、交換分區(qū)的作用?
free 命令有 Mem 和 Swap 兩行查詢結果,其中 Swap 就是交換分區(qū)的意思。
交換分區(qū)也叫交換空間(Swap space),本質(zhì)上是磁盤上的一個區(qū)域,可以是一個分區(qū),也可以是一個文件。
當系統(tǒng)的物理內(nèi)存不夠用時,就會把一部分不常用的數(shù)據(jù)臨時放到交換分區(qū)(Swap),等到程序要使用這些數(shù)據(jù)時,再把它們從交換分區(qū)加載到物理內(nèi)存中。
這就意味著,系統(tǒng)總是在內(nèi)存不夠用的情況下,才會使用交換分區(qū)。
如果交換分區(qū)沒被使用或者使用的很少,內(nèi)存夠用(使用情況良好);反之,就說明內(nèi)存不夠用了,可能會影響到系統(tǒng)的使用。
交換分區(qū)可以在一定程度上解決內(nèi)存不足的問題,但它會讀取磁盤的數(shù)據(jù),所以讀寫速度不快,因此,只有在內(nèi)存不夠用時,才會選擇把數(shù)據(jù)放到交換分區(qū)。
那么,系統(tǒng)什么時候才會把物理內(nèi)存的數(shù)據(jù)放到交換分區(qū)呢?
/etc/sysctl.conf 文件中有一個 swappiness 參數(shù),用來控制交換數(shù)據(jù)的優(yōu)先級,它的取值范圍是0~100,0表示盡可能不把數(shù)據(jù)放到交換分區(qū);100表示盡可能多的把數(shù)據(jù)放到交換分區(qū)。我們可以通過修改 swappiness 參數(shù)的值,來改變系統(tǒng)把內(nèi)存的數(shù)據(jù)放到交換分區(qū)的迫切程度。

三、內(nèi)存使用情況分析技巧
平時用的最多的就是,使用 free -m 查看系統(tǒng)還剩多少內(nèi)存可以使用(重點是 free 那一列)。
比如下圖中,內(nèi)存還剩2508MB可用(總共3725MB,已使用253MB,緩存用了964MB),就處于一個比較健康的狀態(tài)。

再看下面這張圖,服務器的內(nèi)存還剩809MB(總共257415MB,已使用66759MB,緩存用了189847MB),就屬于不正常的情況;

緩存占了太多的內(nèi)存,服務器上的應用可能就會出現(xiàn)功能無法正常使用的問題,如果需要緊急恢復使用,可以重啟服務,釋放緩存;如果不緊急,就找專業(yè)人員分析一下具體的原因。
四、原理(free數(shù)據(jù)來源)
free命令實際上是在查詢 /proc/meminfo 這個文件,我們查看這個文件,會發(fā)現(xiàn)里面有很多字段,單位是KB,所以free不加參數(shù)時,默認單位就是KB。

到此這篇關于Linux命令之free命令使用詳解的文章就介紹到這了,更多相關Linux free命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一天一個shell命令 linux好管家--磁盤--df命令詳解
這篇文章主要介紹了一天一個shell命令 linux好管家--磁盤--df命令詳解 ,需要的朋友可以參考下2016-06-06

