可用内存低,缓存内存高:这样安全吗?

可用内存低,缓存内存高:这样安全吗?

我在 4G 内存服务器上安装了 Apache +Mysql+ PHP,每天大约有 20000 次访问。下图显示了一天的内存使用情况。从图中可以看出:可用内存较低(例如 155 M),缓存内存较高(例如 2G)。此服务器从未使用过交换内存。

  • 我需要增加内存吗?
  • 可用内存低但缓存内存高是否安全?
  • 如何找到哪个应用程序使用了大量缓存?

非常感谢你的帮助。 替代文本

答案1

内存cached是 使用的磁盘缓存VFS。它将存储读取的文件,以便在需要时不必访问硬盘,并且如果某个应用程序需要内存,它将释放一些内存。

您应该问自己的问题是:

  • 它是否变得缓慢/迟缓
  • 是否交换使用过的应用程序

如果两个答案都是否定的,那么您无需执行任何操作。即使某些应用程序被交换出去一点,也可能是因为被交换的部分从未使用过,并且可以安全地存储在交换区中。

这个想法是,只要一切工作正常,就不要试图修复它,缓存内存,甚至交换页面都是 VM 操作系统的正常操作。

答案2

您的问题不具体,但我假设运行 apache 的系统是基于 Linux 的。缓存内存是内核用于缓存文件的内存。这通常是一件好事,也是正常的。系统中有内存却什么都不做是愚蠢的,因为它可以做一些有用的事情,比如加快对文件的访问速度。

答案3

如上所述,缓存内存只是内存(快速)缓冲区,用于存储硬盘(慢速)上的数据。您通常会看到,如果(应用程序)使用的内存增加,缓存计数就会减少。所以在我看来,这看起来像是一个相当正常的图表。

您应该考虑的另一个参数是交换使用情况,一旦您的系统开始使用交换(位于磁盘内存中,因此速度很慢),就意味着您的系统运行不理想,这表明需要增加物理内存。

实际上在这种情况下应该感到高兴,因为您的操作系统正在如此有效地利用您的内存(通过将其用作磁盘缓存),当您有大量内存闲置而没有用于任何事情时,将所有内容读取/写入磁盘(速度很慢)是毫无意义的。

相关内容