系统监视器和 free -m 显示不同的读数

Sha*_*s88 1 linux fedora-13

我通过使用系统监视器看到了内存使用情况,它显示了 778Mb/2012Mb。然后我在终端上使用 free -m 检查它。我看见了这个

             total       used       free     shared    buffers     cached
Mem:          2012       1922         89          0        130       1013
-/+ buffers/cache:        778       1234
Swap:         2047          0       2047
Run Code Online (Sandbox Code Playgroud)

怎么会有这么大的差距。看起来系统监视器将 -/+ 缓冲区/缓存读取显示为已用内存总量。但这究竟是什么?如果 1922Mb 的已用内存是真的,那么我的系统会变得非常慢。有人会解释这个吗?我使用软呢帽 13

fla*_*ode 6

想把有这个问题的人指向这个网站:www.linuxatemyram.com

Linux 吃了我的 ram!

这是怎么回事?

Linux 借用未使用的内存用于磁盘缓存。这使得看起来您的内存不足,但事实并非如此!一切安好!

[...]

如果不是,为什么 top 和 free 会说我的所有 ram 都已使用?

这只是对术语的误解。您和 Linux 都同意应用程序占用的内存是“已使用”的,而没有用于任何事情的内存是“空闲的”。

但是,您将既可用于某事又可用于应用程序的内存称为什么?

你会称之为“免费”,但 Linux 称之为“使用”。

Memory that is               You'd call it  Linux calls it
---------------------------  -------------  --------------
taken by applications                 Used            Used
available for applications,
  and used for something              Free            Used
not used for anything                 Free            Free
Run Code Online (Sandbox Code Playgroud)

这个“东西”就是 top 和 free 所说的“缓冲区”和“缓存”。由于您和 Linux 的术语不同,您认为自己的内存不足,而实际上并非如此。

我如何查看我真正拥有多少可用内存?

要查看有多少内存可用于您的应用程序,请运行free -m并查看“空闲”列中显示“-/+ 缓冲区/缓存”的行。这是您的答案(以兆字节为单位)。

[...]