运行Magento Enterprise 1.9,我注意到购物车中有20多个商品,网站变得非常慢。比如,“加载页面只需10秒”。随着我将此项目增加到100项,该网站变得无法使用。
这甚至不在购物车或结帐页面上!它在任何页面上。
我可以做些什么来减轻这种性能影响:
1)在全球范围内,在所有页面上?
和
2)在购物车/结帐页面上?
由于
答案 0 :(得分:6)
太多观察者观察并评论他们在购物车中观察到的每一行产品。如果您没有使用RSS进行可下载的产品或捣乱,可以在控制文件中将这些模块设置为active = false以关闭模块,将观察者放到牧场并加快购物车功能。
他们的开销是惊人的......并且随着行数的增加,结帐会以指数方式变慢。
app/etc/modules/Mage_Downloadable.xml
将< active> 行设置为false
。
app/etc/modules/Mage_All.xml
找到Mage_Rss的< active> 行并设置为false
拉斐尔·卡斯纳http://www.kassner.com.br/en/2011/01/07/magento-slow/
宣布了这个原因标准免责声明,YMMV,在开发服务器上进行测试等,然后在您的实时服务器上释放。
答案 1 :(得分:2)
Magento是一个非常复杂和灵活的系统,因为它的MVC系统和EAV数据库结构,但由于这个原因,它非常耗费资源。您需要优化服务器才能处理此问题。有用的指南是这些http://www.magentocommerce.com/whitepaper/。考虑apache,mysql和php设置。
除此之外,您需要缓存系统(如APC或Memcached)来停止在每个请求上加载的所有magento文件。根据流量,并发用户等,您将需要一个功能强大的服务器。我正在运行一个专用的四核ubuntu服务器,配备16GB RAM和一个专用数据库服务器来运行我的商店。
关于100件商品车,这实际上是否可能发生?在购物车页面上,magento将从数据库中加载所有100种产品,这将是非常密集的,所以如果发生这种情况,你需要查看以上所有要点。
安装APC非常简单,并且会立即产生戏剧效果。另一方面,调整服务器更像是试错的情况。互联网上有很多工具可以帮助解决这个问题,我首先会使用负载影响测试来查看它可以同时处理多少用户和每秒请求数等。
还有一些模块可以开始缓存整个页面,但不确定这是否有助于你的100项购物车方案,这将主要是我认为的数据库瓶颈。
答案 2 :(得分:0)
我认为这与Magento如何使用其属性有关。不是数据库请求本身会降低速度(总共大约0.06秒)。
我遇到了同样的问题,而且可配置的产品也很慢。
我找到了一些网页,其代码可以优化属性处理。 (这意味着更多的内存缓存当然: - )