我的 VPS 内存消耗过高

我的 VPS 内存消耗过高

可能重复:
free 输出中的 buffers/cache 行的含义
为什么 Linux 会奇怪地报告“可用”内存?

我有一个 12GB RAM 的 VPS,用来托管几个静态网站、2 个小型 Magento 商店和几个 WordPress 安装 - 总体来说没什么特别的,而且流量一般很低。

不过我注意到我的内存消耗相当高——请看一下下面的 free m 的结果:

             total       used       free     shared    buffers     cached
Mem:      12306384   12137728     168656          0     753360    8629744
-/+ buffers/cache:    2754624    9551760
Swap:      1048564        104    1048460

另请参见 Mumin 的屏幕截图 http://s13.postimage.org/q2xewgnef/Screenshot_4.jpg

现在我认为 9.5 GB 似乎与缓冲区/缓存有关 - 但我发现这个数字相当高。这是我需要担心的事情吗?还是它们最终会自行释放?(我曾在某处读到过,但我肯定不是专家)

另一点需要注意的是,Memcached 已经安装过一次并应用于我的一个 Magento 安装 - 它可能与它有关吗?

如果能得到一些专家的建议我将非常感谢。

答案1

你走进一家工厂,所有员工都在工作。你会想,“为什么员工不坐在沙发上无所事事呢?”嗯,这有点愚蠢。员工应该工作,而不是坐着等着工作。

如果你在想“我希望 RAM 现在空闲,以便以后使用”,那么这也是愚蠢的。你不需要 RAM 现在空闲,以便以后使用。你现在可以使用它稍后使用它即可获得两全其美的效果。

它是不像你今天只用了 8GB明天你就可以开始使用 20GB 的内存。现在不使用内存没有任何好处,只是永远失去了机会。使用系统内存没有任何成本,因此没有理由不尽可能多地使用内存。

假设系统确实释放了更多内存。将会发生以下两种情况之一:

  1. 这些内存以后都不会被使用。在这种情况下,释放它们的努力就完全浪费了。

  2. 该内存稍后会被使用。在这种情况下,释放它的努力就白费了,因为它必须再次使用它。

现代操作系统只有在别无选择的情况下才会释放内存。这样做需要付出努力,而且当内存再次使用时,这种努力就必须撤消。相反,内存会直接从一种用途转换到另一种用途,而不会被释放。只有在特殊用例中才需要释放内存,在这种情况下,内存无法从一种用途转换到另一种用途,例如在中断上下文中。为此目的只需要非常少量的可用内存,通常为 64MB 或更少。

相关内容