Linux命令之free命令使用詳解
作用:查看內(nèi)存使用情況。
參數(shù):
- -b 以
Byte
為單位顯示 - -k 以
KB
為單位顯示m 以MB
為單位顯示 - -h 自動(dòng)計(jì)算單位(最大保留三位數(shù))
- -s<間隔秒數(shù)> 持續(xù)觀察(間隔多少秒查看一次內(nèi)存)
- -t 顯示總和列
- -V 顯示版本
一、常用操作
1)查看內(nèi)存使用情況,以MB為單位
2)每隔5秒查看一次內(nèi)存使用情況(Ctrl + c 退出查看)
提示:free不是向top命令一樣動(dòng)態(tài)變化,本質(zhì)上就是每隔一定時(shí)間執(zhí)行一次查詢操作。
二、字段解釋
不加參數(shù)時(shí),默認(rèn)以KB為單位顯示內(nèi)存大小。
6個(gè)字段列的意思分別是:
- total:系統(tǒng)內(nèi)存總大小
- used:已使用內(nèi)存
- free:可用內(nèi)存(剩余多少內(nèi)存)
- shared:多個(gè)進(jìn)程共享的內(nèi)存
- buff/cache:系統(tǒng)緩存大小
- available:還可以被使用的內(nèi)存
左側(cè)兩個(gè)字段行的意思分別是:
- Mem:物理內(nèi)存空間使用情況,通常意義上的物理內(nèi)存分區(qū)
- Swap:交換空間使用情況(交換分區(qū)),物理內(nèi)存不夠用時(shí),臨時(shí)存放數(shù)據(jù)。
1、free和available的區(qū)別?
free 和 available 這兩個(gè)字段都有“剩余內(nèi)存”的意思,很多同學(xué)可能會(huì)對(duì)此產(chǎn)生疑惑,這里給大家簡(jiǎn)單解釋一下這兩個(gè)字段的區(qū)別:
- free是未被使用的內(nèi)存
- available是程序“認(rèn)為”還可以被使用的內(nèi)存
Linux為了提高讀寫性能,會(huì)拿出一部分內(nèi)存來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù)(也就是系統(tǒng)緩存緩存),當(dāng)剩余的內(nèi)存(free)不夠的時(shí)候,就會(huì)釋放一部分緩存(buff/cache)來(lái)滿足程序的使用需求。
即:available = free + buff/chche(部分可以被釋放的緩存)
2、交換分區(qū)的作用?
free 命令有 Mem 和 Swap 兩行查詢結(jié)果,其中 Swap 就是交換分區(qū)的意思。
交換分區(qū)也叫交換空間(Swap space),本質(zhì)上是磁盤上的一個(gè)區(qū)域,可以是一個(gè)分區(qū),也可以是一個(gè)文件。
當(dāng)系統(tǒng)的物理內(nèi)存不夠用時(shí),就會(huì)把一部分不常用的數(shù)據(jù)臨時(shí)放到交換分區(qū)(Swap),等到程序要使用這些數(shù)據(jù)時(shí),再把它們從交換分區(qū)加載到物理內(nèi)存中。
這就意味著,系統(tǒng)總是在內(nèi)存不夠用的情況下,才會(huì)使用交換分區(qū)。
如果交換分區(qū)沒(méi)被使用或者使用的很少,內(nèi)存夠用(使用情況良好);反之,就說(shuō)明內(nèi)存不夠用了,可能會(huì)影響到系統(tǒng)的使用。
交換分區(qū)可以在一定程度上解決內(nèi)存不足的問(wèn)題,但它會(huì)讀取磁盤的數(shù)據(jù),所以讀寫速度不快,因此,只有在內(nèi)存不夠用時(shí),才會(huì)選擇把數(shù)據(jù)放到交換分區(qū)。
那么,系統(tǒng)什么時(shí)候才會(huì)把物理內(nèi)存的數(shù)據(jù)放到交換分區(qū)呢?
/etc/sysctl.conf
文件中有一個(gè) swappiness 參數(shù),用來(lái)控制交換數(shù)據(jù)的優(yōu)先級(jí),它的取值范圍是0~100,0表示盡可能不把數(shù)據(jù)放到交換分區(qū);100表示盡可能多的把數(shù)據(jù)放到交換分區(qū)。我們可以通過(guò)修改 swappiness 參數(shù)的值,來(lái)改變系統(tǒng)把內(nèi)存的數(shù)據(jù)放到交換分區(qū)的迫切程度。
三、內(nèi)存使用情況分析技巧
平時(shí)用的最多的就是,使用 free -m
查看系統(tǒng)還剩多少內(nèi)存可以使用(重點(diǎn)是 free 那一列)。
比如下圖中,內(nèi)存還剩2508MB可用(總共3725MB,已使用253MB,緩存用了964MB),就處于一個(gè)比較健康的狀態(tài)。
再看下面這張圖,服務(wù)器的內(nèi)存還剩809MB(總共257415MB,已使用66759MB,緩存用了189847MB),就屬于不正常的情況;
緩存占了太多的內(nèi)存,服務(wù)器上的應(yīng)用可能就會(huì)出現(xiàn)功能無(wú)法正常使用的問(wèn)題,如果需要緊急恢復(fù)使用,可以重啟服務(wù),釋放緩存;如果不緊急,就找專業(yè)人員分析一下具體的原因。
四、原理(free數(shù)據(jù)來(lái)源)
free命令實(shí)際上是在查詢 /proc/meminfo
這個(gè)文件,我們查看這個(gè)文件,會(huì)發(fā)現(xiàn)里面有很多字段,單位是KB,所以free不加參數(shù)時(shí),默認(rèn)單位就是KB。
到此這篇關(guān)于Linux命令之free命令使用詳解的文章就介紹到這了,更多相關(guān)Linux free命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一天一個(gè)shell命令 linux好管家--磁盤--df命令詳解
這篇文章主要介紹了一天一個(gè)shell命令 linux好管家--磁盤--df命令詳解 ,需要的朋友可以參考下2016-06-06Linux shell命令統(tǒng)計(jì)某列去重后的值
今天小編就為大家分享一篇關(guān)于Linux shell命令統(tǒng)計(jì)某列去重后的值,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02