linux下查看內存命令free。但是,linux內存的實際使用,和輸出的字面意思還是有些差別,linux真正可用的內存不是free項直接看到的。如下:
[root@dbrg-1 ~]# free
total used free shared buffers cached
Mem: 319844 83632 236212 0 19128 46116
-/+ buffers/cache: 18388 301456
Swap: 2096472 0 2096472
total 內存總數
used 已經使用的內存數
free 空閒的內存數
shared 多個進程共享的內存總額
buffers Buffer Cache和cached Page Cache 磁盤緩存的大小
Swap 虛擬內存
【注】紅色行和藍色行的used/free意義是不同的。紅色行是從系統的角度來看,buffers/cached 都是屬於被使用,藍色行是從應用程序角度來看,對於應用程序來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高文件讀取的性能,當應用程序需在用到內存的時候,buffer/cached會很快地被回收。
對於Mem行:total = used + free ((319844 = 83632 + 236212 )
對於-/+ buffers/cache行:
total = used + free (319844 = 18388 + 301456)
used = used + buffers + cached (83632 = 18388 + 19128 + 46116 )
轉:
為了提高磁盤存取效率, Linux做了一些精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,後者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。