Linux中內存查看命令free詳解(轉)


add by zhj:如果free輸出有available項,那直接看這項就可以了,它表示可用內存的大小。如果沒有available,那

可用內存是多少呢,可以參考下面free命令的第二行中的free項:715M,這個比實際可用內存要大一些,因為它是用

第一行的free + buffers + cached,而buffers和cached雖然大部分都可以釋放(即當其它應用程序需要內存的時候,

這部分內存可以自動釋放),但其中也有一小部分是不能釋放的,所以available內存是略小於free + buffers + cached的。

其實有一個命令可以查看available內存的大小,cat /proc/meminfo,牛逼了。如下,可以看到它的值比free第二行中的free

項略小

hi@ubuntu-desk:learn_lib$ cat /proc/meminfo | grep -i available
MemAvailable:    1393624 kB
hi@ubuntu-desk:learn_lib$
hi@ubuntu-desk:learn_lib$ free
             total       used       free     shared    buffers     cached
Mem:       5169148    4294168     874980     180336      61852     744484
-/+ buffers/cache:    3487832    1681316
Swap:      5826556        256    5826300
hi@ubuntu-desk:learn_lib$

 

原文:http://liustb.blog.163.com/blog/static/1337080192011718112434416/

free命令用來查看內存的使用情況,與Top命令相比,開銷較小。要說明的是,不同的發行版的free輸出是不一樣的,下面是

ubuntu 14.04的輸出。

     $free –m

                  total          used        free        shared         buffers        cached

     Mem:    1002          769         232            0                 62              421

     -/+ buffers/cache    286         715

     Swap    1153           0           1153

 

    說明:在理解free命令的輸出項的時候,要區分兩個概念:第一行(mem),是針對操作系統來說的,而對操作系統來說buffercache都是屬於被使用了的內存。第二行(-/+ buffers/cache)是針對應用程序來說的,而對應用程序來說,buffercache都屬於可以使用的內存。

    所以:

    第一行(mem):

      total:表示系統可使用的物理內存的總量為1002

      used表示已經被分配的內存為769,具體包括真正已經被使用掉的buffercache內存286,未使用的buffer內存62,未使用的cache內存421,即769 = 62 + 421 + 286

      free:表示未分配的物理內存為232

      buffers:已經被系統分配而未使用的buffer內存62

      cached:已經被分配而未使用的cache內存421

 

   第二行(-/+ buffers/cache

     used:已經被應用程序真正使用掉的buffercache內存為286

     free:可以被應用程序使用的內存為715,其中包括:已經分配而未使用的buffer內存62,已經分配而未使用的cache內存421,還沒有被分配的內存232,即: 715 = 62 + 421 + 232

 

   另:linuxbuffercache的區別:

     buffer:要寫到硬盤上去的數據內存;

     cache:讀取到內存中的數據內存;


免責聲明!

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



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