linux下使用free命令查看實際內存占用(可用內存)


轉至:http://blog.is36.com/linux_free_command_for_memory/

linux下在終端環境下可以使用free命令看到系統實際使用內存的情況,一般用free -m方式查看內存占用情況(兆為單位)。而系統實際可用內存是不是free部分呢,不是的,系統實際內存占用以及可用內存有如下幾個加減法:

  • used=total-free  total=used+free
  • 實際內存占用:used-buffers-cached 即 total-free-buffers-cached
  • 實際可用內存:buffers+cached+free

                   total       used       free     shared    buffers     cached
Mem:            128        119           8          0            1               22
-/+ buffers/cache:        95          32
swap:          255            0         255

 

第1行Mem數據:

  • total 內存總數: 128
  • used 已經使用的內存數: 119
  • free 空閑的內存數: 8
  • shared 當前已經廢棄不用,總是0
  • buffers Buffer Cache內存數: 1
  • cached Page Cache內存數: 22

第2行-/+ buffers/cache:

  • -buffers/cache 的內存數:95 (等於第1行的 used - buffers - cached)
  • +buffers/cache 的內存數: 32 (等於第1行的 free + buffers + cached)

可見-buffers/cache反映的是被程序實實在在吃掉的內存,而+buffers/cache反映的是可以挪用的內存總數。

第三行數據是交換分區SWAP的,也就是我們通常所說的虛擬內存。

為了提高磁盤存取效率, Linux做了一些精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,后者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。

感興趣的可以進一步參考文件/proc/meminfo,free命令就是根據它的信息生成的。free命令的源碼可從procps-xxx-.src.rpm獲取,xxx為版本號,比如procps-3.2.3-5.3.src.rpm。

 


免責聲明!

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



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