Linux
free 輸出中緩衝區/記憶體行的含義
為什麼我的伺服器顯示
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 的變化
請注意,
free
procps 3.3.10(2014 年發布)中的輸出已更改。報告的列現在是**“total”、“used”、“free”、“shared”、“buff/cache”、“available”**,並且一些值的含義發生了變化,主要是為了更好地說明 Linux 核心的平板記憶體。有關動機,請參閱Debian 錯誤報告 #565518 ,以及從 14.04 到 16.04的輸出變化是什麼意思?
free
了解更多詳細資訊。