free输出中缓冲区/高速缓存行的含义


168

为什么我的服务器显示

            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?



Answers:


232

值的含义

第一行表示:

  • total:您的总(物理)RAM(不包括内核在启动时为其自身永久保留的一小部分);这就是为什么它显示ca。11.7 GiB,而不是您可能拥有的12 GiB。
  • used:操作系统正在使用的内存。
  • free:未使用内存。

total= used+free

  • shared/ buffers/ cached:这显示为特定目的的内存使用情况,这些值包括在该值used

第二行给出调整后的第一行值。它给出了原值used 减去的总和buffers+cached与原始值free 加上总和buffers+cached,因此它的标题。这些新值通常比第一行更有意义。

最后一行(Swap:)提供有关交换空间使用情况的信息(即已临时移至磁盘的内存内容)。

背景

要真正理解数字的含义,您需要了解Linux中的虚拟内存(VM)子系统的背景知识。只是一个简短的版本:Linux(像大多数现代OS一样)将始终尝试使用空闲RAM来缓存内容,因此Mem: free几乎总是很低。因此显示了该行-/+ buffers/cache:,因为它显示了忽略高速缓存时可用的内存量。如果内存不足,缓存将自动释放,因此它们并不重要。

如果行中的free-/+ buffers/cache:变低,则Linux系统的内存确实不足。

有关数字含义的更多详细信息,请参见以下问题:

程序的变化3.3.10

请注意,freeprocps 3.3.10(2014年发布)中对的输出进行了更改。现在报告的列为“总计”,“已使用”,“免费”,“共享”,“ buff /缓存”,“可用”,并且某些值的含义已更改,主要是为了更好地说明Linux内核的模板缓存。

有关动机,请参见Debian Bug报告#565518 free输出从14.04到16.04 的变化意味着什么?有关更多详细信息。


您能否扩展Linux可能缓存的内容?是被访问的文件还是网络的东西?
CMCDragonkai 2015年

@CMCDragonkai:serverfault.com/questions/23433/…的答案详细说明了构成“缓存”和“缓冲区”的内容。
sleske 2015年

5
我认为“总计=已用+免费”的说法不正确,请参见我的计算机上的以下输出:$ free -h total used free shared buff/cache available Mem: 3.4G 585M 152M 11M 2.6G 2.5G Swap: 4.0G 84M 3.9G
Sebastian

@Sebastian:嗯,很有趣。似乎免费的输出已更改(在3.3.10中)。我编辑了答案以提及这一点。如果您对此更改感兴趣,请考虑提出一个新问题:-)。
sleske '17

3
total = used + free + buff/cache
危险89年


2

缓冲区/缓存行显示了程序使用了多少内存(这些列的第一列),而程序可以免费使用(第二列)。这是一个相当深奥的数字,而不是您在实践中会真正看到的东西。


第一行(记忆行)是什么意思
Muahmmad Zeeshan,2009年

8
您已经在系统中安装了12GB的RAM,其中已使用11.5GB,当前未使用0.5GB左右。大约82MB的已用内存用于缓冲区(网络连接等),而大约6.5GB的内存用于在磁盘上存储数据的副本,因此,如果再次需要,则不必重新读取数据。
womble

3
@穆罕默德:“ 82MB是免费的。” -不,57MiB是免费的(但这并不重要,请参阅我的回答)。“现在,这一切都意味着系统已经达到极限”-不,一点也不。该系统具有用于缓存的6.9GiB,可以轻松地将其提供给应用程序,因此空间很大。此外,交换使用率非常低(大约50MiB)。如果内存开始变紧,交换使用率将上升。目前,您几乎没有使用一半的RAM。
sleske,

4
您是否考虑过在某个时候问一个新问题?
womble

3
我不同意,缓冲区/缓存行是系统的实际可用内存,因此如果您想知道系统是否有程序空间,则最相关。
eckes 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.