Linux 服务器内存使用情况和缓存可用性

Linux 服务器内存使用情况和缓存可用性

这是一个已经讨论过的话题,但有一点我不太确定。

我想看看我的服务器内存是否合适(操作系统是 centos 6)。我运行将在服务器上作为生产运行的进程,并检查内存使用情况。

检查剩余的可用内存量,我读了很多帖子,发现缓存内存被 top 或 free 等工具视为已使用内存,而对于需要的进程来说,它是可用的内存。(我发现 free -m 输出更清晰,因为它显示缓冲区/缓存行)

这总是正确的吗?因为我读过一些帖子说将缓存内存解释为可用内存并不总是正确的,例如当系统使用 initramfs(而不是 initrd,如果我理解得没错的话?)时。我尝试挖掘一些关于 initramfs 和 initrd 的阅读材料,但我不得不承认这让我有些头疼 :/

所以现在我有点困惑:
- 我如何才能获得剩余可用内存的“实际”数量:我应该检查我的系统是否依赖于 initramfs 而不是 initrd 来查看显示为缓存内存的内容是否可以算作可用内存?
- 进程是否可以以不同的方式使用内存,以便其消耗(进程运行时)仅出现在缓存内存显示上,而不出现在已用内存显示上?

非常感谢,
如果说得不清楚,我很抱歉,我心里没有这样想

答案1

对于大多数用途,将缓存内存视为可用内存是完全可以的。但对于 RAMdisk 文件系统(如 initramfs),一小部分内存将专用于 RAMdisk。这部分内存不被视为可用,但在大多数情况下,此 RAMdisk 足够小,在内存消耗方面相对不重要。如果出于某种原因您需要随时确切知道有多少可用内存,则需要确定 RAMdisk 的确切大小或选择不使用 RAMdisk 系统。

相关内容