史上最全的Free命令解析以及案例,不服來辯。
零、背景
當項目部署一段時間以后,隨著用戶訪問量的增加,機器的負載越來越大。這個時候我們應該從查看服務器的瓶頸在哪里。內存、帶寬、CUP等等。下面本片文章主要是講述查看內存的方式。如何查看CUP使用情況,請參考:
linux:%20Top命令你了解多少?
一、%20介紹
free命令是顯示當前系統中已經時間內存和未使用內存的大小,包括物理內存和交換內存。主要先是的項目有以下:
當前系統所有內存使用情況都保存在%20/proc/meninfo%20文件中。
字段%20描述%20/proc/meninfo字段名(物理)%20/proc/meninfo字段名(交換) total%20總內存%20MemTotal%20SwapTotal used%20已用內存%20MemFree%20SwapFree free%20閑置內存%20MemFree%20SwapFree shared%20分享內存%20Shmem buffers%20內核緩存%20Buffers cache%20頁面緩存%20Cached%20SReclaimable buff/cache%20內核緩存和頁面緩存之和 available%20估算開始新程序時可用內存大小不包括交換內存%20MemAvailable

二、 選項
2.1 語法
free [options]
2.2 選項
-h 自動選擇格式的大小單位顯示(以人們較容易看懂的方式顯示) -w 寬泛模式,每一行可以超過80個字符。buffers和cache分開顯示 -c 顯示計數次數,和-s一起使用,用來指定需要顯示多少次 -l 顯示最低和最高內存統計詳情 -s 后面秒數,表示每隔多少面更新一次,類似top -d; 例如 free -s 3; 表示每隔3秒刷新一次 --si 進制使用1000,而非1024。 注意這個命令是使用兩個中劃線 -t 多添加一行顯示total -V 查看版本 --help查看幫助
說明:
這里我沒有列出-b 、-k 、-m、-g 等等參數,因為使用-h 改選項可以就已經夠用。如果這的有什么需求的話。參考這個表格吧。
-b byte -k KB -m MB -g GB -t TB -p PB
三、實例
3.1 命令默認顯示
[root@dongjing sed]# free total used free shared buff/cache available Mem: 1735904 757832 431964 115404 546108 682224 Swap: 0 0 0
可以看出默認顯示的單位為字節
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以后系統會自動幫我們選擇合適的大小單位顯示。
3.3 每隔3秒鐘顯示一次內存使用情況,最多打印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 查看最低和最高內存使用詳情
[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進制顯示內存大小
[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作為進制計算,使用過的內存明顯比使用1024偏多。
3.6 在顯示的結果最后一行添加total統計
[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

可以發現最后一行多了一個total,計算所有可用內存。包括交換內存的大小。
四、總結,到這里我們基本上學會了查看內存。