1. 程式人生 > >free -m內存使用詳解

free -m內存使用詳解

linu cached i/o 無聊 常常 nod 做了 詳解 linux

技術分享

第一部分Mem這行:
total -> 內存總數: 32014M=32G
used -> 已經使用的內存數: 7665M
free -> 空閑的內存數: 24349M
shared -> 當前已經廢棄不用,總是0
buffers Buffer -> 緩存內存數: 155M
cached Page -> 緩存內存數:4890M

關系:total(32014M) = used(7665M) + free(24349M)

第二部分(-/+ buffers/cache):
(-buffers/cache) used內存數:2619M (指的第一部分Mem行中的used – buffers – cached)

(+buffers/cache) free內存數: 29395M (指的第一部分Mem行中的free + buffers + cached)

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

第三部分是指交換分區

其實我們可以從二個方面來解釋。
對操作系統來講是Mem的參數。buffers/cached都是屬於被使用,所以它認為free只有24349M。
對應用程序來講是(-/+ buffers/cach)。buffers/cached 是等同可用的,因為buffer/cached是為了提高程序執行的性能,當程序使用內存時,buffer/cached會很快地被使用。

所以,以應用來看看,以(-/+ buffers/cache)的free和used為主。所以我們看這個就好了。另外告訴大家一些常識。Linux為了提高磁盤和內存存取效率, Linux做了很多精心的設計, 除了對dentry進行緩存(用於VFS,加速文件路徑名到inode的轉換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,後者針對文件inode的讀寫。這些Cache能有效縮短了 I/O系統調用(比如read,write,getdents)的時間。

記住內存是拿來用的,不是拿來看的。不象windows,無論你的真實物理內存有多少,他都要拿硬盤交換文件來讀。這也就是windows為什麽常常提示虛擬空間不足的原因。你們想想,多無聊,在內存還有大部分的時候,拿出一部分硬盤空間來充當內存。硬盤怎麽會快過內存.所以我們看linux,只要不用swap的交換空間,就不用擔心自己的內存太少。如果常常swap用很多,可能你就要考慮加物理內存了。這也是linux看內存是否夠用的標準哦。

free -m內存使用詳解