free命令詳解


語法選項

-b:以Byte為單位顯示內存使用情況; 
-k:以KB為單位顯示內存使用情況; 
-m:以MB為單位顯示內存使用情況; 
-o:不顯示緩沖區調節列; 
-s<間隔秒數>:持續觀察內存使用狀況; 
-t:顯示內存總和列; 
-V:顯示版本信息。

free -m

[root@localhost ~]# free -m

             total       used       free     shared    buffers     cached
Mem:          7869       7651        218          1        191       5081
-/+ buffers/cache:       2378       5490
Swap:          478        139        339

1,2表示1,2行的內容

total1:表示物理,內存總量

used1:總計分配給緩存(包含Buffer和cache)使用的數量,但其中可能部分緩存並未實際使用

free1:未被分配的內存

shared1:共享內存,一般系統不會用到,這里也不討論

buffers1:系統分配但未被使用的buffers數量

cached1:系統分配但未被使用的cache數量

used2:實際使用的buffers和cache總量,也是實際使用的內存總量

free2:未被使用的Buffers和cache和未被分配的內存之和,這就是系統當前實際可用內存。

如下公式:

total1=used1(buffers1+cached1+used2)+free1   7869=7651(191+5081+2378)+218

total1=used2+free2(buffers1+cached1+free1)     7869=2378+5490(191+5081+218)

buffer和cache也是內存的一部分,如果需要,可以釋放這2部分的內存

pagecache和buffercache的區別:

pagecache實際上是針對文件系統的,是文件的緩存,在文件上的數據會緩存到pagecahce,文件的邏輯層需要映射到實際的物理磁盤,這種映射關系由文件系統來完成,當pagecache中的數據需要刷新時,pagecache中的數據交給buffercache。但這種處理在2.6版本內核之后就變得簡單了,沒有真正意義的cache操作。

buffercache是針對磁盤塊的緩存,也就是在沒有文件系統的情況下,直接對磁盤操作的數據會緩存到buffercache中,如:文件系統的元數據都會緩存到buffercache中。簡單來說,

pagecache用來緩存文件數據,buffercache用來緩存磁盤數據。在有文件系統的情況下,對文件操作,數據會緩存到pagecache。若直接采用dd工具對磁盤進行讀寫,那么數據會

緩存到buffercache。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM