基本使用
free是一個內存查看工具,使用起來非常簡單:
free -m ## 單位是M 也可以是-g -k
[KentZhang@ALVPCFLKF-192-168-29-61 707]$ free -m
total used free shared buffers cached
Mem: 32186 31827 359 0 704 22448
-/+ buffers/cache: 8674 23511
Swap: 7999 11 7988
解釋含義
從第三行起,解釋其含義。
第三行:total 爲 32186M,表示系統的物理內存;used 爲31827M,表示系統已經使用的內存,注意,這裏的used包含了後面的buffers和cached;shared表示共享內存的大小;buffers和cached則是表示用於特殊目的的內存,其中的一個目的是爲了提高IO訪問速度,buffers是用來寫的,cached是用來讀的。
第四行:used 爲8674M,表示系統實際使用的內存,這些內存無法再被使用,free爲23511M,表示可使用的內存。
顯然,23511 = 359 + 704 + 22448 8674 = 32186 - 23511
第五行: 是交換區的使用情況,這裏暫且不談。
cache和buffer
內存的訪問速速很難快,是納秒級別的,相對硬盤訪問的速度就很慢,是毫秒級的,前者是後者的數萬倍。爲了解決這個矛盾,於是系統就有了cache和buffer。
有時候,一個硬盤的相同的內容,有可能在短時間內被讀出多次,比如一個機器被多個用戶使用,於是系統在第一次從硬盤讀出數據時,就存入cache中,下次再讀的話,就直接從cache讀取,那麼速度就快了很多。
同樣,在向硬盤寫入數據時,每次寫入數據也是很費時的,要儘量減少寫硬盤的次數,於是系統不會立刻把數據寫入硬盤,而是先寫入buffer中,等到達到一定量的數據,再一次性寫入硬盤。這樣,對應用程序而言,寫數據的效率提高了。