Magento通常这么慢吗?
这是我的第一次使用体验,管理面板只需花一些时间即可加载和保存更改。这是带有测试数据的默认安装。
托管该服务器的服务器可超快地服务于其他非Magento站点。Magento使它如此缓慢的PHP代码有什么用,该如何解决?
Magento通常这么慢吗?
这是我的第一次使用体验,管理面板只需花一些时间即可加载和保存更改。这是带有测试数据的默认安装。
托管该服务器的服务器可超快地服务于其他非Magento站点。Magento使它如此缓慢的PHP代码有什么用,该如何解决?
Answers:
我只是切身参与优化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
并保存!
Mage_AdminNotification
。
我更多地参与了公司的托管服务器优化,但是我可能会为您提供一些技巧。首先,您可以使用Zend服务器的代码跟踪功能更仔细地查看代码。它将使您看到脏物何时何地变脏。
我完全同意benlumley关于缓存的考虑。我们托管的大多数站点甚至都没有启用块缓存。必须明确调用此缓存,而不要“假定”该缓存。因此,如果您的代码尚未参与此机制,则肯定要尝试这种方法。如果您使用的是EE版本,则可以获取完整页面,以充分利用野兽的力量。
反向代理也将有很大帮助。它将缓存静态资源,从而大大降低了前端服务器的php解释堆栈的压力。
不要忘记将会话和Magento缓存写入RAM磁盘。这无疑也将带您进入另一个层次的表演。
这里还有很多话要说,但我已经没时间了。您必须知道,一个良好的站点,在1.4.1 CE版本中进行了良好的编码,在2x5650 Xeon + 16 GB RAM服务器上运行,并且顶部装有Rproxy,每天最多可以吸引5万名唯一身份访问者,并且每个页面都平滑。
从Apache切换到LiteSpeed对我们有很大帮助。除了:编辑MySQL的设置,安装Fooman Speedster(用于压缩/合并js和css文件的模块),以及安装APC。Magento还发布了有关如何从企业版中获得最佳性能的白皮书,但它同样适用于其他版本:http : //www.magentocommerce.com/whitepaper/
您的Magento购物车运行缓慢可能有很多原因,但没有任何借口,因为有多种方法可以缓解该问题并使它变得非常快。通过修改htaccess文件来启用Gzip是一个开始。您还可以安装fooman speedster扩展。使用的服务器类型也将决定商店的速度。更多提示和更好的解释在这里http://www.interactone.com/how-to-speed-up-magento/