free命令顯示的記憶體與實際不符

tonykorn97發表於2007-03-16

在網上有一個朋友提出free命令顯示的記憶體與實際不符,檢視確實如此:

tonykorn97:/nsr/logs # free
total used free shared buffers cached
Mem: 6227240 6190480 36760 0 26232 5313076
-/+ buffers/cache: 851172 5376068
Swap: 1052248 37632 1014616
tonykorn97:/nsr/logs #

6GB的記憶體顯示為:6227240

理論上應該是這樣的:6*1024*1024=6291456

經過大家的指點,發現答案應該有一下兩個方面:


一:這是因為作業系統沒有計算給PCI資源的記憶體作為使用者可用記憶體。PCI資源可能包括板載網路卡裝置,板載音效卡裝置,PCI/AGP顯示卡等。一般攜帶多個裝置的機器將為這些裝置的運作保留一部分記憶體。

注意實體記憶體和可用記憶體的區別,並且對於不同的機器即是配置了相同的實體記憶體也可能出現可用記憶體容量不一樣的情況。

來自:

二:用free命令顯示的Total列不顯示核心使用的實體記憶體(通常大約1MB)。只是顯示的系統可以使用的記憶體。硬體驅動,核心等應該都包括在核心使用的記憶體中。

來自:

引用部分:

1.在命令列使用“Free”命令監控記憶體使用情況 #free

total used free shared buffers cached

Mem: 256024 192284 63740 0 10676 101004

-/+ buffers/cache: 80604 75420

Swap: 522072 0 522072

上面程式碼給出了一個256MB的RAM和512MB交換空間的系統情況。第三行輸出 (Mem:)顯示實體記憶體。Total列不顯示核心使用的實體記憶體(通常大約1MB)。Used列顯示被使用的記憶體總額(第二行不計緩衝)。Free列顯示全部沒有使用的記憶體。Shared列顯示多個程式共享的記憶體總額。Buffers列顯示磁碟快取的當前大小。第五行(Swap:)對換空間,顯示的資訊類似上面。如果這行為全0,那麼就沒有使用對換空間。在預設的狀態下,free命令以千位元組(也就是1024位元組為單位)來顯示記憶體使用情況。使用-h引數,以位元組為單位顯記憶體使用情況;或者使用-m引數,以兆位元組為單位顯示記憶體使用情況。還可以透過-s引數,使用命令來不間斷地監視記憶體使用情況:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245628/,如需轉載,請註明出處,否則將追究法律責任。

相關文章