系統(tǒng)管理員必須維護(hù)他們服務(wù)器的健康運(yùn)行。其中一個(gè)重要的部分就是內(nèi)存。當(dāng)服務(wù)器內(nèi)存使用率過高時(shí),它會(huì)降低服務(wù)器的性能。Linux有一個(gè)稱為 free 的工具,來(lái)監(jiān)控內(nèi)存使用率。
free 命令是什么
free 命令是一個(gè)顯示系統(tǒng)中空閑和已用內(nèi)存大小的工具。free 命令的輸出和 top 命令相似。大多數(shù)Linux發(fā)行版已經(jīng)含有 free 命令。
如何運(yùn)行 free
想要運(yùn)行,只需在控制臺(tái)輸入free 即可。不帶選項(xiàng)運(yùn)行會(huì)顯示一個(gè)以KB為單位的默認(rèn)輸出。
$ free
從上面的截圖我們看到:
內(nèi)存 (以KB計(jì))
■Total(全部) : 1026740
■Used(已用) : 843396
■Free(可用) : 183344
■Shared(共享) : 0
■Buffers(塊設(shè)備緩存區(qū)) : 52704
■Cached(文件緩存) : 376384
buffers是指用來(lái)給塊設(shè)備做的緩沖大小,他只記錄文件系統(tǒng)的metadata以及 tracking in-flight pages.
cached是用來(lái)給文件做緩沖。
那就是說(shuō):buffers是用來(lái)存儲(chǔ),目錄里面有什么內(nèi)容,權(quán)限等等。而cached直接用來(lái)記憶我們打開的文件
Swap (以KB計(jì))
■Total(全部) : 1045500
■Used(已用) : 3376
■Free(可用) : 1042124
當(dāng)你看見 buffer/cache 的空閑空間低或者 swap 的空閑空間低,說(shuō)明內(nèi)存需要升級(jí)了。這意味這內(nèi)存利用率很高。請(qǐng)注意 shared(共享)內(nèi)存列應(yīng)該被忽略 ,因?yàn)樗呀?jīng)被廢棄了。
以其它單元顯示內(nèi)存信息
如我們先前提到的,默認(rèn) free 會(huì)以 KB 為單位顯示信息。free 同樣提供給我們 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)這些單位。要顯示我們想要的單位,只要選擇一個(gè)并在 free 后面跟上。下面一個(gè)是以 MB 為單位的輸出樣例。
$ free -m
這個(gè)技巧同樣適用于-b, -k, -g 以及 –tera 選項(xiàng)。
以適于人類可讀方式顯示內(nèi)存信息
free 同樣提供了-h選項(xiàng),這意味著適于人類可讀(譯注:系統(tǒng)上可能并不存在-h選項(xiàng),已被-m取代)。那么這與其它的選項(xiàng)有什么不同呢,如-m(MB)選項(xiàng)? 可見的最大不同是-h選項(xiàng)會(huì)在數(shù)字后面加上適于人類可讀的單位。讓我們看一個(gè)例子。
$ free -h
如我們一起看到的,在1,0數(shù)字后這里是G(GB)字母。當(dāng)數(shù)字并沒有達(dá)到GB時(shí),free足夠聰明來(lái)知道并在每個(gè)數(shù)字后面跟上合適的單位。后面的M - 數(shù)字929告訴我們它有929MB(譯注: 原文為929 number tell us its 969 Megabytes,這里應(yīng)該為輸入錯(cuò)誤)。
間隔顯示 free
作為一個(gè)狀態(tài)檢查工具,最好的統(tǒng)計(jì)內(nèi)存利用率的方法是使用延遲間隔。這么做的話,我們可以使用-s選項(xiàng)后面跟上我們想要間隔的N秒數(shù)。我們可以在后面合并幾個(gè)選項(xiàng)來(lái)使輸出滿足我們的需求。假如我們想要每3秒統(tǒng)計(jì)一次內(nèi)存利用率并且適于人類可讀,那么就像這樣做:
$ free -hs 3
顯示高低內(nèi)存利用率
如果我們想要知道高低內(nèi)存統(tǒng)計(jì),我們可以使用-l選項(xiàng)。下面是一個(gè)例子。
$ free -l
顯示 Linux 全部?jī)?nèi)存
如果我們需要每列的總計(jì)信息,我們可以在 free 命令后面跟上 -t 選項(xiàng)。這會(huì)在字底部額外加入一行顯示。
$ free -t
總結(jié)
除了vmstat以外,free 命令也是一個(gè)用于統(tǒng)計(jì)內(nèi)存利用率的簡(jiǎn)單統(tǒng)計(jì)工具。用這個(gè)你可以快速查看你的 Linux 內(nèi)存信息。free 命令使用 /proc/meminfo 作為基準(zhǔn)來(lái)顯示內(nèi)存利用率信息。如往常一樣,你可以在控制臺(tái)下輸入 man free來(lái)獲取更多關(guān)于 free 的信息。