[20160902]簡單探究linux的free命令.txt

lfree發表於2016-09-01

[20160902]linux命令free的buffers與cached表示什麼.txt

--簡單探究linux的free命令。
$ free
             total       used       free     shared    buffers     cached
Mem:     132261196   29620656  102640540          0     174340   24209712
-/+ buffers/cache:    5236604  127024592
Swap:     31455264      10592   31444672

-/+ buffers/cache的used: used - buffers - cached
                         29620656- 174340-24209712=5236604
-/+ buffers/cache的free: free + buffers + cached       
                         102640540+ 174340+24209712=127024592

--而buffers和cached表示什麼呢?
下面是關於buffers和cached的英文資料:

Buffers are associated with a specific block device, and cover caching of filesystem metadata as well as tracking
in-flight pages. The cache only contains parked file data. That is, the buffers remember what's in directories, what
file permissions are, and keep track of what memory is being written from or read to for a particular block device. The
cache only contains the contents of the files themselves.

-- buffers 快取,主要用於塊裝置快取,例如使用者目錄、inode值等(ls大目錄可以看到這個值增加)
-- cached  快取,主要用於快取檔案。

--所以講free memory很少,不用擔心,用來快取檔案了,另外可以如下命令來釋放相關記憶體。

--To free pagecache:
# echo 2 >| /proc/sys/vm/drop_caches

$ free
             total       used       free     shared    buffers     cached
Mem:     132261196    7420620  124840576          0     174368    2662916
-/+ buffers/cache:    4583336  127677860
Swap:     31455264      10592   31444672

--//你可以對比上面buffers幾乎不變。而cached減少了不少。

--To free dentries and inodes:
# echo 1 >| /proc/sys/vm/drop_caches
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    6709548  125551648          0       1008    2228344
-/+ buffers/cache:    4480196  127781000
Swap:     31455264      10592   31444672

--//對比上面buffers減少很多,cached幾乎不變,再次驗證文件的內容。如果執行
--# To free pagecache, dentries and inodes:
--# echo 3 >| /proc/sys/vm/drop_caches
--這個測試大家可以自己測試。

--可以在反向驗證這個判斷。
# cd /
# ls -lR > /dev/null

--然後開啟另外的視窗觀察:
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    6798588  125462608          0      15512    2232348
-/+ buffers/cache:    4550728  127710468
Swap:     31455264      10592   31444672
# sleep 5
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    6969776  125291420          0      66568    2232716
-/+ buffers/cache:    4670492  127590704
Swap:     31455264      10592   31444672

# sleep 5
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    7347624  124913572          0     117412    2458840
-/+ buffers/cache:    4771372  127489824
Swap:     31455264      10592   31444672

--增加主要的是buffers,也就是快取使用者目錄、inode值等。希望透過這個簡單的測試理解linux命令free的內容。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2124363/,如需轉載,請註明出處,否則將追究法律責任。

相關文章