为什么Magento这么慢?

Magento通常非常慢吗?

这是我第一次使用它,pipe理面板只需要很长的时间来加载和保存更改。 这是testing数据的默认安装。

它托pipe的服务器为其他非Magento网站提供超快的服务。 Magento使用的PHP代码是什么让它变得如此缓慢,以及可以做些什么来解决它?

我只是切合实际地参与优化Magento的性能,但这里有一些原因是为什么系统如此之慢

  1. 部分Magento使用在MySQL之上实现的EAV数据库系统。 这意味着查询单个“事物”往往意味着查询多行

  2. 背后有许多事情(应用程序configuration,系统configuration,布局configuration等),涉及在内存中build立巨大的XML树,然后“查询”那些相同的树来获取信息。 这需要内存(存储树)和CPU(parsing树)。 其中一些(特别是布局树)是巨大的。 而且,除非打开caching,否则这些树是从磁盘 上的 文件每个请求中构build的。

  3. Magento使用它的configuration系统来允许你重写类。 这是一个强大的function,但它意味着任何时候模型,帮助器或控制器都被实例化,需要运行额外的PHP指令来确定是否需要原始类文件或覆盖类文件。 这加起来。

  4. 除了布局系统之外,Magento的模板系统还涉及到很多recursion渲染。 这加起来。

一般来说,Magento工程师的任务首先是build立可能性最灵活,可定制的系统,之后担心性能。

您可以做的第一件事情是确保更好的性能,就是caching(系统 – >cachingpipe理)。 这将缓解Magento构build各种XML树时发生的一些CPU /磁盘阻塞。

你要做的第二件事是确保你的主机和操作团队有经验的性能调整Magento。 如果你依靠7美元/月的计划来看你,那么祝你好运。

除了Alan Storm关于caching的build议之外,还有两点我特别build议你查看与caching相关的内容:

– 确保caching在memcached中,而不是在磁盘上。

我看了几个magento安装,一旦你在系统上得到任何负载,memcached开始执行得更快。 它的死容易改变它(至less相对于做其他magento的东西!)

好的起点在这里: http : //www.magentocommerce.com/boards/viewthread/12998/P30/ – 但如果你以前没有使用过memcached,那么它的值得关注一些一般的信息。

– 启用模板/视图caching。

这是一篇很好的文章: http : //inchoo.net/ecommerce/magento/magento-block-caching/

在magento网站上也有很好的(谷歌magento块caching),但目前它的下降。

为了把我的两分钱添加到块caching中,我build议你在/ app / code / local中创build自己的块,扩展核心块并定义caching参数,将它们命名为xxx_Cac​​he,然后更新布局以使用这些块的核心。 这样,您可以避免在升级magento时丢失更改或破坏系统。

如果你还没有看到它,Magento和Rackspace联手创build一个关于性能优化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在这一点上。)

你可以试试这个 – 不能保证工作,但已经帮助了很多人:

http://inchoo.net/ecommerce/magento/boost-the-speed-of-your-magento/

您的pipe理界面非常慢可能也有一个非常明显的原因。 Magento有一个名为Mage_AdminNotification的模块。 尝试禁用该分机。 因为它所做的是查询magentocommerce.com新的更新消息。 如果他们的服务器很慢,你的pipe理页面就会等待,而且由于networking滞后和外部消息的加载,效果很慢。 如果通过防火墙确保了您的传出服务器连接,则可能会更加令人沮丧,因为pipe理界面在无法到达magentocommerce.com时将等待超时

要禁用它:进入系统 – >configuration,滚动到底部,点击高级(在高级部分)。 现在禁用Mage_AdminNotification并保存!

我只有Magento的肤浅经验。 我将它安装在一个共享的网格服务器上,页面加载速度很慢〜5 +秒。 在云雀,我安装了我优化的CMS网站专用服务器,它感觉非常,非常活泼。

我的专用主机有〜10 Joomla! 网站和一个VBullitin网站运行。

我的猜测是它只是不会在共享主机performance。 超额认购不会允许Magento运行足够的资源。

Magento是非常缓慢的,因为数据库devise不是很好。 代码是一团糟,很难更新和优化。 所以所有的优化都是通过caching而不是代码完成的。

另一方面。 这是一个有很多工具的网上商店。 所以,如果你需要一个灵活的网店只是购买一个非常强大的服务器,你会没事的。

从Apache切换到LiteSpeed帮助了我们很多。 除了:编辑MySQL的设置,安装Fooman Speedster(模块来压缩/合并js和css文件)以及安装APC。 Magento还发布了一份关于如何从企业版中获得最佳性能的白皮书,但它同样适用于其他版本: http : //www.magentocommerce.com/whitepaper/

我更多地参与了我公司的托pipe服务器优化,但我可能会为您提供一些提示。 首先,您可以使用Zend服务器的代码追踪function更仔细地查看代码。 它会让你看到什么地方什么时候变脏。

我完全赞同benlumley关于caching的考虑。 我们托pipe的大多数网站甚至没有启用块caching。 这个caching必须显式调用,而不是“假定”。 所以如果你的代码还没有使用这个机制的一部分,这是你一定要尝试的东西。 如果你有一个EE版本,你可以得到整个页面,以获得最好的野兽。

反向代理也会有很大的帮助。 它会caching静态资源,显着降低前端服务器的php解释堆栈的压力。

不要忘记将会话和Magentocaching写入RAM磁盘。 这也一定会让你到另一个级别的表演。

这里还有很多要说的,但是我没有时间了。 您必须知道,在1.4.1 CE版本中编写的良好站点,运行在2×5650 Xeon + 16 GB RAM服务器上,并且Rproxy位于顶层,每天最多可接收50,000位唯一身份访问者,并为每个人提供stream畅的页面。

有很多原因,为什么你的Magento购物车可以运行缓慢,但没有任何借口,有各种方式来解决这个问题,使其相当快速。 通过修改您的htaccess文件来启用Gzip是一个开始。 您也可以安装fooman speedster扩展。 使用的服务器types也将决定您的商店的速度。 更多提示和更好的解释在这里http://www.interactone.com/how-to-speed-up-magento/

当我第一次安装,我有页面,需要30秒加载。 我的服务器没有在内存或处理器中最大化,所以我不知道该怎么做。 看着萤火虫的networking面板,每页加载大约100个文件,每个都花了很长时间连接。 安装fooman speedster后,在htaccess的加载时间gzip时间下降到3秒,就像他们已经在我的服务器上的其他购物车。

它也将归结为function与性能。

使用nginx,php-fpm,memcached,apc和一个合适的服务器可以获得原始的性能。

在devise一个magento性能云时,可以通过考虑整个基础架构来pipe理plesk和magento性能等function。