Linux

free 輸出中緩衝區/記憶體行的含義

  • April 26, 2021

為什麼我的伺服器顯示

           total      used      free   shared buffers    cached
   Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
  Swap: 24571408     54528  24516880

我不知道如何計算 linux 中的記憶體。我認為它說使用 5088232 而 7198224 是免費的,這意味著它實際上消耗了 5GB 的 RAM?

值的含義

第一行的意思是:

  • total:您的總(物理)RAM(不包括核心在啟動時為自己永久保留的一小部分);這就是為什麼它顯示ca。11.7 GiB,而不是您可能擁有的 12 GiB。
  • used:作業系統正在使用的記憶體。
  • free: 記憶體未使用。
  • shared// buffers:cached這顯示了用於特定目的的記憶體使用情況,這些值包含在 的值中used

第二行給出調整後的第一行值。它給出了used 減去總和buffers+cached的原始值和free 加上總和的原始值buffers+cached,因此它的標題。這些新值通常比第一行的值更有意義。

最後一行 ( Swap:) 提供有關交換空間使用情況的資訊(即臨時移動到磁碟的記憶體內容)。

背景

要真正理解這些數字的含義,您需要了解一下 Linux 中的虛擬記憶體 (VM) 子系統的背景知識。只是一個簡短的版本:Linux(像大多數現代作業系統一樣)將始終嘗試使用空閒 RAM 來記憶體內容,因此Mem: free幾乎總是非常低。因此顯示了該行-/+ buffers/cache:,因為它顯示了忽略記憶體時有多少記憶體可用;如果記憶體不足,記憶體將自動釋放,因此它們並不重要。

如果行中的free-/+ buffers/cache:變低,Linux 系統的記憶體就會非常低。

有關數字含義的更多詳細資訊,請參見問題:

procps 3.3.10 的變化

請注意,freeprocps 3.3.10(2014 年發布)中的輸出已更改。報告的列現在是**“total”、“used”、“free”、“shared”、“buff/cache”、“available”**,並且一些值的含義發生了變化,主要是為了更好地說明 Linux 核心的平板記憶體。

有關動機,請參閱Debian 錯誤報告 #565518 ,以及從 14.04 到 16.04的輸出變化是什麼意思?free了解更多詳細資訊。

引用自:https://serverfault.com/questions/85470