是的Magento通常这么可怕的慢?
这是我与它第一次的经验和管理面板仅仅需要年龄加载和保存更改。 这是一个默认安装与测试数据。
它托管服务器提供其他非Magento的网站超级快。 是什么样的PHP代码Magento的使用,使得它这么慢,什么可以做,以解决这个问题?
是的Magento通常这么可怕的慢?
这是我与它第一次的经验和管理面板仅仅需要年龄加载和保存更改。 这是一个默认安装与测试数据。
它托管服务器提供其他非Magento的网站超级快。 是什么样的PHP代码Magento的使用,使得它这么慢,什么可以做,以解决这个问题?
我只切向参与Magento的优化性能,但这里有几个原因,该系统是这么慢
Magento的零件用在MySQL的基础上实现的EAV数据库系统。 这意味着查询单“东西”往往意味着查询多个行
有很多幕后的东西(应用程序配置,系统配置,布局配置等),在内存中涉及建立巨型XML树,然后选择“查询”的信息,这样的树。 这需要两个存储器(存储树)和CPU(解析树)。 其中一些(尤其是布局树)的是巨大的。 此外,除非缓存是,这些树是从文件建立在磁盘 和每个请求 。
Magento会用它的配置系统,让您覆盖类。 这是一个强大的功能,但它意味着随时随地的模型,辅助性,或控制器被实例化,额外的PHP指令需要运行,以确定是否需要原始的类文件或覆盖类文件。 这就增加了。
除了布局系统,Magento的模板系统涉及大量的递归渲染。 这就增加了。
一般情况下,Magento的工程师们负责,首先,以建设最灵活,可定制系统成为可能,并担心以后的表现。
你可以做,以确保更好的性能的第一件事就是打开缓存上(系统 - >缓存管理)。 这将缓解一些的推移而Magento的正在建设自己的各种XML树的CPU /磁盘阻塞。
你会想要做的第二件事是确保您的主机和运营团队有经验的性能优化的Magento。 如果你依赖于$ 7 /月计划看穿你,好了,祝你好运。
继艾伦风暴对缓存的建议,有两件事我特别推荐你看看相关的缓存:
-确保缓存在memcached中,而不是在磁盘上。
我看到一对夫妇的Magento的安装后,一旦你得到任何形式的系统负载的,分布式缓存开始以更快的速度执行。 而它的死很容易(相对于至少做其他Magento的东西!)改变过来
良好的出发点是在这里: http://www.magentocommerce.com/boards/viewthread/12998/P30/ -但是如果你不使用memcached的所有之前,它的价值在关于它的一些基本信息看为好。
-启用模板/视图缓存。
这是一篇好文章: http://inchoo.net/ecommerce/magento/magento-block-caching/
有在Magento站点太(谷歌的Magento块缓存)好的,但它目前下去。
为了我的两分钱添加到块缓存,我建议你在/ app /代码/本地创建自己的块,扩展核心的人,并定义缓存参数,它们命名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
(感谢由于艾伦风暴在这一个。)
有可能也是一个非常不明显的原因,你的管理界面是很慢的。 Magento的有一个名为Mage_AdminNotification模块。 尝试禁用分机。 因为它的作用是为新的更新信息查询magentocommerce.com。 如果他们的服务器是缓慢的管理页面等待,是见效慢,因为外部消息网络延迟和负荷。 如果您已经获得通过防火墙发送服务器连接这可能是更令人沮丧的,因为管理界面将等待超时,当它不能达到magentocommerce.com
要禁用它:去系统 - >配置,滚动至底部,并击中高级(在高级部分)。 现在禁用Mage_AdminNotification
和保存!
我只有与Magento的一个肤浅的经验。 我安装了一个共享的网格服务器和网页加载是惨淡〜5 +秒。 在云雀,我安装了它我的CMS网站优化的专用服务器上,感觉非常,非常活泼。
我的专用主机了〜10的Joomla! 网站和一个VBullitin网站的运行。
我的猜测是它只是不会是在共享主机高性能。 超额认购就不会留出足够的资源,Magento的运行,因为它应该。
我更多地参与我公司管理的服务器优化,但我可以对你的一些提示。 首先,你可以看看代码更加紧密地使用代码跟踪的Zend服务器的功能。 它可以让你看到当事情变得肮脏的地方和。
我完全同意benlumley的关于缓存的考虑。 大部分的网站,我们的主机甚至没有块缓存启用。 这种缓存必须显式调用,而不是“假设”。 所以,如果你的代码还没有把这个机制的一部分,它是你一定要试一下。 如果你有一个EE版本,你可以为了获得最佳的野兽得到完整的一页。
反向代理也将有很大的帮助。 它会缓存静态ressources,显著降低你的面前服务器的PHP解释堆栈上的压力。
不要忘了会话和Magento的高速缓存写入RAM磁盘。 这也一定会得到你的表演另一个层次。
仍然有很多在这里说,但我的时间不多了。 你要知道,一个好的网站,以及在1.4.1 CE版本编码的,一个2x5650至强+ 16 GB RAM的服务器上运行,并在顶部有Rproxy可能需要多达50万次用流畅的页面,大家每天独立访问用户。
从Apache的切换到的Litespeed帮助我们很多。 除了:编辑MySQL的设置,安装Fooman欧宝(模块压缩/联合js和css文件),并安装APC。 Magento的还张贴了关于如何获得最佳表现出来的企业版的白纸,但它同样适用于其他版本: http://www.magentocommerce.com/whitepaper/
原因有很多,为什么你的Magento的购物车可能会运行缓慢,但没有借口有多种方式来eleviate问题,并使其相当不错的快。 通过修改htaccess文件启用gzip是一个开始。 您还可以安装fooman欧宝扩展。 该类型还使用的服务器将决定你的店的速度。 更多技巧和这里更好的解释http://www.interactone.com/how-to-speed-up-magento/
Magento的速度很慢,因为数据库设计的不是很好。 该代码是一个烂摊子,很难更新和优化。 因此,所有的优化是通过高速缓存,而不是代码来完成。
另一方面。 这是一个有很多的工具网上商店。 所以,如果你需要一个灵活的网上商店只买一个非常强大的服务器,你会没事的。
当我第一次安装我有这样的人服用30秒加载页面。 我的服务器不是在RAM或处理器刷爆了,所以我不知道该怎么办。 看着Firebug的净面板它加载每页约100个文件,每一个花了很长时间进行连接。 在htaccess的负载安装fooman欧宝和gzip的时间后下降到3秒,就像他们一直在我的服务器上的其他购物车。
它也将回落到功能与性能。
原始性能是使用nginx的,PHP-FPM,memcached的,APC和适当设计的服务器获得。
喜欢的Plesk和Magento的性能功能可以通过设计Magento的性能云环境时将整个基础设施的角度来管理。