Magento通常非常慢吗?
这是我第一次体验它,管理面板只需要很长时间来加载和保存更改.它是包含测试数据的默认安装.
托管它的服务器可以超快速地为其他非Magento站点提供服务.什么是Magento使用的PHP代码使它变得如此缓慢,以及可以采取哪些措施来解决它?
我只是切实参与优化Magento的性能,但这里有几个原因导致系统速度太慢
Magento的部分使用在MySQL之上实现的EAV数据库系统.这意味着查询单个"事物"通常意味着查询多行
幕后有很多东西(应用程序配置,系统配置,布局配置等),它们涉及在内存中构建巨型XML树,然后"查询"那些相同的树以获取信息.这需要内存(存储树)和CPU(解析树).其中一些(尤其是布局树)非常庞大.此外,除非启用了缓存,否则这些树是根据磁盘上的文件和每个请求构建的.
Magento使用其配置系统允许您覆盖类.这是一个强大的功能,但它意味着只要实例化模型,帮助器或控制器,就需要运行额外的PHP指令来确定是否需要原始类文件或覆盖类文件.这加起来.
除了布局系统,Magento的模板系统还涉及大量的递归渲染.这加起来.
总的来说,Magento工程师的任务首先是建立最灵活,可定制的系统,并在以后担心性能.
为确保更好的性能,您可以做的第一件事就是打开缓存(系统 - >缓存管理).这将减轻Magento构建其各种XML树时发生的一些CPU /磁盘阻塞.
您要做的第二件事是确保您的主机和运营团队具有Magento性能调优经验.如果你依靠7美元/月的计划来看你,那么,祝你好运.
除了Alan Storm关于缓存的建议之外,我还特别建议您研究与缓存相关的两件事:
- 确保缓存在memcached中,而不是在磁盘上.
我看了几个magento安装,一旦你在系统上得到任何负载,memcached开始执行得更快.它的死很容易改变它(相对于至少做其他magento的东西!)
好的起点在这里:http://www.magentocommerce.com/boards/viewthread/12998/P30/ - 但如果您以前根本没有使用过memcached,那么它的值得查看一些关于它的一般信息.
- 启用模板/视图缓存.
这是一篇很好的文章:http://inchoo.net/ecommerce/magento/magento-block-caching/
在magento网站上也有很好的(谷歌magento块缓存),但它现在下降.
要将我的两分钱添加到块缓存中,我建议您在/ app/code/local中创建自己的块,扩展核心块并定义缓存参数,将它们命名为xxx_Cache,然后更新布局以使用这些块代替核心的.这样,您可以避免在升级magento时丢失更改或破坏系统.
如果你还没有看到它,Magento和Rackspace联手打造了一篇关于Magento性能调整的白皮书.这很棒. https://support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/
---编辑---
另一个最新资源(2011年10月)是:http: //www.sessiondigital.com/assets/Uploads/Mag-Perf-WP-final.pdf
(感谢Alan Storm关于这个.)
您的管理界面非常慢,可能还有一个非常明显的原因.Magento有一个名为Mage_AdminNotification的模块.尝试禁用该分机.因为它的作用是查询magentocommerce.com以获取新的更新消息.如果他们的服务器很慢,您的管理页面会等待,并且由于网络延迟和外部新闻的加载而实际上很慢.如果您通过防火墙保护了外发服务器连接,这可能会更令人沮丧,因为管理界面会在无法访问magentocommerce.com时等待超时
要禁用它:转到系统 - >配置,滚动到底部并点击高级(在高级部分).现在禁用Mage_AdminNotification
并保存!
我更多地参与了公司的托管服务器优化,但我可能会为您提供一些技巧.首先,您可以使用Zend服务器的代码跟踪功能更密切地查看代码.它可以让你看到事情变脏的地点和时间.
我完全赞同benlumley关于缓存的考虑.我们托管的大多数网站甚至都没有阻止缓存启用.必须显式调用此缓存而不是"假设".因此,如果您的代码尚未参与此机制,那么您肯定想尝试一下.如果您有EE版本,您可以获得完整页面以获得最好的野兽.
反向代理也会有很大帮助.它将缓存静态资源,显着降低前端服务器的php解释堆栈的压力.
不要忘记将会话和Magento缓存写入RAM磁盘.这也肯定会让你达到另一个级别的表现.
这里还有很多东西要说,但我已经没时间了.你必须知道一个好的网站,在1.4.1 CE版本中编码,在2x5650至强+ 16 GB RAM服务器上运行并且在顶部有一个Rproxy,每天最多可以吸引5万个独立访客,每个人都有流畅的页面.
我只对Magento有过肤浅的经历.我将它安装在共享的网格服务器上,页面加载惨淡〜5 +秒.在云雀上,我将它安装在我针对CMS网站专用服务器的优化上,它感觉非常非常活泼.
我的专属托管有~10 Joomla!站点和运行的VBullitin站点.
我的猜测是,它不会在共享主机上表现出色.超额认购不会让Magento有足够的资源来运行.
从Apache切换到LiteSpeed对我们帮助很大.除了:编辑MySQL的设置,安装Fooman Speedster(压缩/组合js和css文件的模块)和安装APC.Magento还发布了一份关于如何从企业版中获得最佳性能的白皮书,但它同样适用于其他版本:http://www.magentocommerce.com/whitepaper/