史上最全的Free命令解析以及案例,不服來辯。
零、背景
當(dāng)項目部署一段時間以后,隨著用戶訪問量的增加,機器的負載越來越大。這個時候我們應(yīng)該從查看服務(wù)器的瓶頸在哪里。內(nèi)存、帶寬、CUP等等。下面本片文章主要是講述查看內(nèi)存的方式。如何查看CUP使用情況,請參考:
linux:%20Top命令你了解多少?
一、%20介紹
free命令是顯示當(dāng)前系統(tǒng)中已經(jīng)時間內(nèi)存和未使用內(nèi)存的大小,包括物理內(nèi)存和交換內(nèi)存。主要先是的項目有以下:
當(dāng)前系統(tǒng)所有內(nèi)存使用情況都保存在%20/proc/meninfo%20文件中。
字段%20描述%20/proc/meninfo字段名(物理)%20/proc/meninfo字段名(交換) total%20總內(nèi)存%20MemTotal%20SwapTotal used%20已用內(nèi)存%20MemFree%20SwapFree free%20閑置內(nèi)存%20MemFree%20SwapFree shared%20分享內(nèi)存%20Shmem buffers%20內(nèi)核緩存%20Buffers cache%20頁面緩存%20Cached%20SReclaimable buff/cache%20內(nèi)核緩存和頁面緩存之和 available%20估算開始新程序時可用內(nèi)存大小不包括交換內(nèi)存%20MemAvailable
二、 選項
2.1 語法
free [options]
2.2 選項
-h 自動選擇格式的大小單位顯示(以人們較容易看懂的方式顯示) -w 寬泛模式,每一行可以超過80個字符。buffers和cache分開顯示 -c 顯示計數(shù)次數(shù),和-s一起使用,用來指定需要顯示多少次 -l 顯示最低和最高內(nèi)存統(tǒng)計詳情 -s 后面秒數(shù),表示每隔多少面更新一次,類似top -d; 例如 free -s 3; 表示每隔3秒刷新一次 --si 進制使用1000,而非1024。 注意這個命令是使用兩個中劃線 -t 多添加一行顯示total -V 查看版本 --help查看幫助
說明:
這里我沒有列出-b 、-k 、-m、-g 等等參數(shù),因為使用-h 改選項可以就已經(jīng)夠用。如果這的有什么需求的話。參考這個表格吧。
-b byte -k KB -m MB -g GB -t TB -p PB
三、實例
3.1 命令默認(rèn)顯示
[root@dongjing sed]# free total used free shared buff/cache available Mem: 1735904 757832 431964 115404 546108 682224 Swap: 0 0 0
可以看出默認(rèn)顯示的單位為字節(jié)
3.2 自動選擇合適的大小單位顯示
[root@dongjing sed]# free -h total used free shared buff/cache available Mem: 1.7G 739M 421M 112M 533M 666M Swap: 0B 0B 0B
可以看到使用-h以后系統(tǒng)會自動幫我們選擇合適的大小單位顯示。
3.3 每隔3秒鐘顯示一次內(nèi)存使用情況,最多打印2次。
[root@dongjing sed]# free -s 3 -c 2 -h total used free shared buff/cache available Mem: 1.7G 741M 420M 112M 533M 664M Swap: 0B 0B 0B total used free shared buff/cache available Mem: 1.7G 741M 420M 112M 533M 664M Swap: 0B 0B 0B
可以看到每隔3秒打印一次,共打印兩次
3.4 查看最低和最高內(nèi)存使用詳情
[root@dongjing sed]# free -lh total used free shared buff/cache available Mem: 1.7G 756M 405M 112M 533M 650M Low: 1.7G 1.3G 405M High: 0B 0B 0B Swap: 0B 0B 0B
3.5 以1000進制顯示內(nèi)存大小
[root@dongjing sed]# free --si -h total used free shared buff/cache available Mem: 1.7G 774M 415M 115M 546M 665M Swap: 0B 0B 0B [root@dongjing sed]# free -h total used free shared buff/cache available Mem: 1.7G 756M 405M 112M 533M 650M Swap: 0B 0B 0B
對比查看使用1000作為進制計算,使用過的內(nèi)存明顯比使用1024偏多。
3.6 在顯示的結(jié)果最后一行添加total統(tǒng)計
[root@dongjing sed]# free -ht total used free shared buff/cache available Mem: 1.7G 714M 447M 112M 533M 691M Swap: 0B 0B 0B Total: 1.7G 714M 447M
可以發(fā)現(xiàn)最后一行多了一個total,計算所有可用內(nèi)存。包括交換內(nèi)存的大小。
四、總結(jié),到這里我們基本上學(xué)會了查看內(nèi)存。