闡述Linux內(nèi)存管理方式
如果我們應(yīng)用電腦時,感覺特別慢,就會查看內(nèi)存的使用率。本文講解Linux內(nèi)存管理方式。舉個例子來說,為什么Linux使用的內(nèi)存這么高,1G的內(nèi)存free才232M,講win xp才用200M的內(nèi)存。如下顯示free是顯示的當前內(nèi)存的使用。-m的意思是M字節(jié)來顯示內(nèi)容,我們來一起看看。
$ free -m
total used free shared buffers cached
Mem: 1002 769 232 0 62 421
-/+ buffers/cache: 286 715
Swap: 1153 0 1153
第一部分Mem行:
total 內(nèi)存總數(shù): 1002M
used 已經(jīng)使用的內(nèi)存數(shù): 769M
free 空閑的內(nèi)存數(shù): 232M
shared 當前已經(jīng)廢棄不用,總是0
buffers Buffer 緩存內(nèi)存數(shù): 62M
cached Page 緩存內(nèi)存數(shù):421M
關(guān)系:total(1002M) = used(769M) + free(232M)
第二部分(-/+ buffers/cache):
(-buffers/cache) used內(nèi)存數(shù):286M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free內(nèi)存數(shù): 715M (指的第一部分Mem行中的free + buffers + cached)
可見-buffers/cache反映的是被程序?qū)崒嵲谠诔缘舻膬?nèi)存,而+buffers/cache反映的是可以挪用的內(nèi)存總數(shù)。
第三部分是指交換分區(qū), 我想不講大家都明白.
我想大家看了上面,還是很暈.第一部分(Mem)與第二部分(-/+ buffers/cache)的結(jié)果中有關(guān)used和free為什么這么奇怪.
其實我們可以從二個方面來解釋.
對操作系統(tǒng)來講是Mem的參數(shù).buffers/cached 都是屬于被使用,所以它認為free只有232.
對應(yīng)用程序來講是(-/+ buffers/cach).buffers/cached 是等同可用的,因為buffer/cached是為了提高程序執(zhí)行的性能,當程序使用內(nèi)存時,buffer/cached會很快地被使用。
所以,以應(yīng)用來看看,以(-/+ buffers/cache)的free和used為主.所以我們看這個就好了.另外告訴大家一些常識.Linux為了提高磁盤和內(nèi)存存取效率, Linux做了很多精心的設(shè)計, 除了對dentry進行緩存(用于VFS,加速文件路 徑名到inode的轉(zhuǎn)換), 還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁盤塊的讀寫,后者針對文件inode的讀寫。這些Cache能有效縮短了 I/O系統(tǒng)調(diào)用(比如read,write,getdents)的時間。
記住內(nèi)存是拿來用的,不是拿來看的。不象windows, 無論你的真實物理內(nèi)存有多少,他都要拿硬盤交換文件來讀。這也就是windows為什么常常提示虛擬空間不足的原因,你們想想多無聊,在內(nèi)存還有大部分的時候,拿出一部分硬盤空間來充當內(nèi)存。硬盤怎么會快過內(nèi)存,所以我們看Linux,只要不用swap的交換空間,就不用擔(dān)心自己的內(nèi)存太少。如果常常swap用很多,可能你就要考慮加物理內(nèi)存了,這也是Linux看內(nèi)存是否夠用的標準哦。
本文介紹的Linux內(nèi)存管理方式,希望對你學(xué)習(xí)Linux有所幫助。
【編輯推薦】