Linux Top 显示内存使用率为 99% - 这是正常的吗?

Linux Top 显示内存使用率为 99% - 这是正常的吗?

可能重复:
Linux 高内存使用率(顶部总不匹配)
Linux 服务器上的高内存使用率

CentOS 5.7 专用服务器。未运行占用大量内存的进程。已安装 12GB RAM。

Mem:  12462256k total, 12425344k used,    36912k free,   395528k buffers
Swap:  1999864k total,      344k used,  1999520k free, 10795472k cached

我联系了我们的服务器提供商,他们说:

缓存内容约为 10 GB,这是系统经常访问的信息,这样服务器在需要信息时就可以更快地访问它。这些信息总是可以被释放,内存可以分配给其他需要。

那有意义吗?

我检查了另一台只有 4GB RAM 的服务器。它也处于“无所事事”状态,但可以肯定的是,99% 的 RAM 被标记为“已使用”。但在这种情况下,只有极少部分被标记为“缓存”。

Mem:   3969436k total,  3945568k used,    23868k free,   352740k buffers
Swap:  2097144k total,  1206984k used,   890160k free,    53232k cached

有人能理解这一点吗?

答案1

服务器专用于运行什么?虽然确实很奇怪,但我在 VirtualBox VM 服务器中看到了这种行为。不过,我认为服务器提供商的答案是足够的。他们似乎正在使用可用的 RAM 作为快速存储位置。一定有一个应用程序(或系统驱动程序)占用了您的 RAM。

“Top” 有点难导航。试试“htop”,您可以更轻松地查看内容。RAM 使用量表上有颜色编码,因此您可以查看用户或系统是否正在使用这部分 RAM。

答案2

你可能在想,“我希望有更多空闲的 RAM,以便以后使用”。但你不需要有空闲的 RAM现在以便以后使用。事实上,如果现在正在使用,以后使用它会更容易——你根本不需要做任何事情就可以以后使用它。所以你的问题基本上是“为什么事情这么好?它们不应该更糟吗?”

空闲的 RAM 是纯粹的成本。如果你让 1GB 空闲 10 分钟,那么你就永远失去了在这段时间内使用该内存的机会。你以后不能使用额外的 1GB。因此,现代操作系统只有在别无选择的情况下才会让 RAM 空闲,因为这样就浪费了。只需要大约 32MB,这是在无法直接从一种用途转换到另一种用途的情况下需要 RAM 的情况(例如,在磁盘中断期间)。

答案3

当然,Linux 使用所有 RAM:既用于应用程序,也用于文件系统缓存。您最好使用“cat /proc/meminfo”进行检查。查看“Cached”和“Buffers”行

相关内容