我的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真的很奇怪
这个命令是否安全生产?
2377MB的caching是好的吗?
我必须改变一些东西吗?
谢谢。
你观察的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的数据是免费的 (你可以把它当作未使用的,而不是性能的成本 – 只有好处!),而且生活中没有什么东西是免费的。 当你的程序需要它时,他们会得到它。 否则,最近从磁盘读取的数据将被保存在内存中,并用于回答否则需要从驱动器读取的数据。