将Magento var目录放在RAM中

时间:2012-08-20 15:14:40

标签: php mysql magento caching optimization

我需要加快我的magento安装速度,所以我打算将'var /'(或者只有var / cache和var / sessions)的内容放在tmpfs上。

我也在亚马逊上买了一个保留的实例,所以我想保留足够的RAM。我想启用memcached,PHP Apc,MySQL缓存和HTTP缓存。

我正在考虑使用以下规范的 Medium 预留实例:

3.75 GB memory
2 EC2 Compute Unit (1 virtual core with 2 EC2 Compute Unit)
410 GB instance storage
32-bit or 64-bit platform
I/O Performance: Moderate
EBS-Optimized Available: No
API name: m1.medium

RAM是否足以应用一个好的缓存系统? 现在看(3个月后)var目录是14gb,但我认为每5/7天清理它也会很好。

你对我有什么建议吗?

P.S。该商店将平均包含100/150种产品。

3 个答案:

答案 0 :(得分:5)

我认为将/var移动到tmpfs可能不是您最大的瓶颈,可能比它的价值更麻烦。确保启用了Magento缓存并启用了APC。

这篇文章介绍了一些关于提高Magento性能的一般提示:

Why is Magento so slow?

答案 1 :(得分:4)

我建议考虑设置像Varnish这样的反向代理。

如果您计划在内存中使用tmpfs,我建议您查看Colin的改进情况Zend_Cache_Backend_File

另外,我建议您查看mytop,了解您是否有任何可以在应用程序本身或my.cnf中优化查询的地方,以帮助缓解任何数据库瓶颈。

Session Digital在优化Magento企业方面有一篇很好的白皮书(尽管有点过时),同样可以应用于社区。在我尝试的所有内容中,如白皮书中所提到的,Varnish提供了响应时间最显着的增加。

希望这有帮助!

答案 2 :(得分:1)

首先,这里的所有答案都是+1。

如果您正在考虑运行/ var / out of tmpfs,可能是因为您在AWS上听说过糟糕的文件IO ,或者您自己遇到了问题。但是,/ var /目录是您关心的最少 - Zend / Magento的自动加载器对IO更加沉重。为了减轻您想要运行APC和编译(假设您没有使用持久性购物车)。

正如其他评论者所反映的那样,任何从缓存或内存中运行的东西都会绕过PHP,从而需要触摸磁盘并引发IO问题。 Varnish是一种蛮力的方法,是大规模网站上的一个很好的工具,可以扩展到数百万的视图;但我相信Varnish对SSL的限制以及我们Magento社区缺乏真实的文档和支持使得它成为一种比实际替代方案更好的知识选择。

在运行Magento社区时,我更喜欢在一个Medium实例上在AWS上运行Tinybrick的Lightspeed - 这给了我最大的收益,它本身就是一个整页缓存。我在这个设置中得到200多个并发页面/秒,我没有运行memcached或使用编译。

  
    

http://www.tinybrick.com/improve-magentos-slow-performance.html/

  

小心在AWS实例中运行memcached - 我发现它可能会被一个耗电量大的Apache所阻碍,在极少数情况下,你没有得到一个引导缓存,导致Apache maxclients在等待时出现问题用于缓存响应。如果你能负担得起,我宁愿运行两个微型Apache实例,它们有一个共享的memcached会话存储和一个负载平衡器 - 尽管如此,在一个单独的盒子上为数据库提供一些马力。但所有设置都是独一无二的,您的流量/使用量将决定您需要

我已经在AWS云中运行Magento 3年并取得了巨大的成功 - 我也希望你能这样做。欢呼声。