空闲内存不足,caching内存很高:是否有这个保存?

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

  • 我需要增加内存吗?
  • 可用内存不足但高速caching的内存安全吗?
  • 如何find使用大量caching的应用程序?

非常感谢您的帮助。 替代文字http://i47.tinypic.com/21278.jpg

cached内存是VFS使用的磁盘caching。 它将存储在那里读取的文件,以便它们在需要时不必撞上硬盘驱动器,并且如果某个应用程序需要存储器,它将释放一些文件。

你应该问自己的问题是:

  • 它变得缓慢/呆滞
  • 它是交换使用的应用程序

如果两个答案都不是,那么,你不需要做任何事情。 即使某些应用程序被换出了一点,也可能是因为被换掉的部分从未被使用过,并且可以安全地存储在swap中。

这个想法是,只要一切工作正常,不要试图修复它,caching内存,甚至换出页面是虚拟机操作系统的正常运行。

你的问题不是特定的,但我将假设运行apache的系统是基于Linux的。 caching内存是内核用来caching文件的内存。 这通常是好事,而且是正常的。 让系统中的内存不做任何事情是愚蠢的,当它可以做一些有用的事情,如加快访问您的文件。

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

另一个你应该考虑的参数是交换使用情况,一旦你的系统开始使用交换(这是在磁盘内存,从而慢),这意味着你的系统运行次优,这表明增加了物理内存。

实际上,在这种情况下,如果你的操作系统正在高效地使用你的内存(通过使用它作为磁盘caching),在这种情况下应该感到高兴,那么当你有一个内存的时候,把所有的东西读/写到磁盘上(这是很慢的)大量坐在不被用于任何事情。