Linux性能監控命令:free

opod1403 8年前發布 | 8K 次閱讀 Linux

來自: http://foofish.net/blog/98/linux-command-free

free命令可以查看系統的內存狀況,包括服務器的總內存,已經使用的內存和剩下未被使用的內存,以及緩沖和緩存各自占用的內存情況。

free -m
             total       used       free     shared    buffers     cached
Mem:           994        787        207          0        121        227
-/+ buffers/cache:        437        557
Swap:            0          0          0

要完全理解上面3行數據,先搞明白buffer和cache是什么。

  • buffer:緩沖區,將數據緩沖下來,解決速度慢和快的交接問題;速度快的需要通過緩沖區將數據一點一點傳給速度慢的區域。例如:從內存中將數據往硬盤中寫入,并不是直接寫入,而是緩沖到一定大小之后刷入硬盤中。

    A buffer is something that has yet to be "written" to disk.

  • cache:緩存,實現數據的重復使用,速度慢的設備需要通過緩存將經常要用到的數據緩存起來,緩存下來的數據可以提供高速的傳輸速度給速度快的設備。例如:將硬盤中的數據讀取出來放在內存的緩存區中,這樣以后再次訪問同一個資源,速度會快很多。

    A cache is something that has been "read" from the disk and stored for later use.

buffer是用于存放將要輸出到disk(塊設備)的數據,而cache是存放從disk上讀出的數據。二者都是為提高IO性能而設計的。

現在開始分析free命令輸出的每一行代表的含義:

第一行:Mem

總共的內存994(total) = 787(used)+207(free),used表示系統已經被使用的內存,它包括應用程序使用的內存,以及用于緩沖和緩存的內存總和。

第二行:-/+ buffers/cache,分兩步理解

  1. -buffers/cache:437(used) = 787(used) - 121(buffers) - 227(cached),437表示除去緩沖和緩存消耗的內存外,應用程序實際消耗的內存是437M。
  2. +buffers/cache:557(free) = 207(free)+121(buffers)+cached(227),557表示系統可用的內存有557M,因為如果遇到內存告急的情況時,buffer和cache所占的內存還是可以用來給應用程序使用。

第三行:Swap

看到很多文章直接說不解釋了,但這里我要解釋一下,Swap表示交換分區,也就是我們通常所說的虛擬內存。就可以把一部分磁盤空間當做內存使用,這部分空間叫做虛擬內存,當系統內存不足時,系統會把那些還駐留在內存中但是當前沒有運行的程序暫時放到虛擬內存中去。

 本文由用戶 opod1403 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!