这是一个好的行为?

我的5.7版本运行Magento。 4GB RAM和4个内核。 Nginx + spwan-fcgi + memcached(如果你问我最好的performance)。

现在我有点关心内存使用情况。

[root@adikastyle shipment]# free -m total used free shared buffers cached Mem: 3948 3712 236 0 224 **2377** -/+ buffers/cache: 1109 2839 Swap: 10975 0 10975 

我已经在几个论坛的这个命令中看到:

 # sync; echo 3 > /proc/sys/vm/drop_caches 

该网站是快速处理许多cur-connections。

caching真的很奇怪

  1. 这个命令是否安全生产?

  2. 2377MB的caching是好的吗?

  3. 我必须改变一些东西吗?

谢谢。

你观察的caching行是一件非常好的事情。

所有提到的数据将不得不从caching中读取。 使用caching,结果将从RAM中返回。

现在Linux对caching和caching非常聪明, 不要试图用你在互联网上看到的一些随机的复制和粘贴“提示”来取代它。

不要改变任何东西,很高兴你有近2.5 GB的东西caching。 它极大地帮助你的performance。 用你的回声线去掉caching实际上会使性能受到很大的影响! 如果任何应用程序真正需要,caching的内容将立即被释放,这不会导致性能下降。

如果它在你的configuration中运行的很好,它performance良好,你的统计数据对你的应用程序来说是满意的,不要玩它。

Linux在自己维护caching方面相当不错。

等到你有实际的问题解决,而不是造成新的问题。

这是一个常见的误解,你应该有免费的 RAM。 您需要尽可能多的RAM,这是您的服务器上最快的内存子系统。

所以Linux操作系统非常聪明,开始将经常访问的文件/数据/信息存储在RAM,缓冲区/caching中。

当一个应用程序需要内存(例如更多的PHP线程)时,分配给磁盘/缓冲区的内存将减less,以支持用户空间的应用程序。

所以目前,你的内存使用看起来非常健康。 但是还有值得注意的是你实际提交了多less内存(如果stream量增加,PHP线程增加,MySQL连接数增加等)。 你可以通过运行来检查

 cat /proc/meminfo | grep committed 

你应该希望看到这样的事情

 commitLimit 3145728 committed_AS 6291456 

对于Magento服务器来说,在双倍可用内存周围提供内存(由于不得不增加长时间运行的pipe理进程的PHP内存限制)通常是相当安全的。

在这里围绕caching占主导地位的内存使用的规范引用:

在内存中caching的数据是免费的 (你可以把它当作未使用的,而不是性能的成本 – 只有好处!),而且生活中没有什么东西是免费的。 当你的程序需要它时,他们会得到它。 否则,最近从磁盘读取的数据将被保存在内存中,并用于回答否则需要从驱动器读取的数据。