Php Magento:性能随着购物车项目数量的增加而降低

Php Magento:性能随着购物车项目数量的增加而降低,php,oop,magento,Php,Oop,Magento,在运行MagentoEnterprise1.9时,我注意到购物车中有20多个项目,网站速度变得非常慢。比如,“10秒只是为了加载一个页面”慢。当我把这个增加到100个项目时,这个网站就完全无法使用了 这甚至不在购物车或结帐页面上!它在任何一页上 我可以做些什么来减轻这种性能影响: 1) 在全球范围内,在所有页面上 及 2) 在购物车/结账页面上 感谢由于其MVC系统和EAV数据库结构,Magento是一个非常复杂和灵活的系统,但因此它非常需要资源。您需要优化服务器以处理此问题。这些都是有用的指南

在运行MagentoEnterprise1.9时,我注意到购物车中有20多个项目,网站速度变得非常慢。比如,“10秒只是为了加载一个页面”慢。当我把这个增加到100个项目时,这个网站就完全无法使用了

这甚至不在购物车或结帐页面上!它在任何一页上

我可以做些什么来减轻这种性能影响:

1) 在全球范围内,在所有页面上

2) 在购物车/结账页面上


感谢

由于其MVC系统和EAV数据库结构,Magento是一个非常复杂和灵活的系统,但因此它非常需要资源。您需要优化服务器以处理此问题。这些都是有用的指南。考虑Apache、MySQL和PHP设置。

除此之外,您还需要像APC或Memcached这样的缓存系统来停止每个请求中加载的所有magento文件。根据流量、并发用户等情况,您需要一台功能强大的服务器。我正在运行一个带有16GB内存的四核ubuntu服务器和一个运行我的商店的DB服务器

关于100件商品的购物车,这真的有可能发生吗?在购物车页面上,magento将从数据库加载所有100种产品,这将是非常密集的,因此如果发生这种情况,您需要查看以上所有要点

安装APC非常简单,并将立即产生戏剧性的效果。另一方面,调整服务器更像是一种试错。互联网上有很多工具可以帮助实现这一点,我将首先使用负载影响测试来查看它一次可以处理多少用户以及每秒的请求数等


还有一些可用的模块开始缓存整个页面,但不确定这是否有助于您的100件商品购物车场景。我认为这主要是数据库瓶颈。

太多的观察者观察和评论购物车中的每一行产品。如果你不做可下载的产品或者不使用RSS,这些模块可以在它们的控制文件中设置为active=false,以关闭模块,让观察者出去放牧并加速购物车功能

他们的开销是惊人的。。。并导致签出速度随着行数的增加呈指数级降低

app/etc/modules/Mage_Downloadable.xml
set

标准免责声明、YMMV、在开发服务器上测试等,然后在您的实时服务器上释放


我认为这与Magento如何使用其属性有关。不是db请求本身减慢了速度(总共大约0.06秒)

我也有同样的问题,而且可配置的产品速度非常慢


我发现一些网页上的代码可以优化属性处理。(这当然意味着更多的内存缓存:-)

您是否已打开APC?是否已打开MySQL查询缓存?是和是。我不认为缓存是治愈方法,但它只涵盖了一种症状。我看不出有什么理由把整个购物车都放在每一页上。最多只能为迷你篮加载一个购物车“摘要”。谢谢Ashley,但我已经在运行一个6核的专用服务器,它有48GB ram、APC和一个单独的DB服务器。我相当肯定这个问题是Magento的核心代码优化不好的一个症状。我一直在寻找一种解决方案,它可以为我们的“核心方式”提供替代方案。我们的客户可能会在购物车中丢50件东西,而在25件时就变得毫无用处了。而且在一个相当重的iron服务器上…我同意代码优化得很差,但是我很惊讶,你的设置会导致10秒的页面加载。我运行的最佳设置是APC和Memcache。我刚刚在我的商店里复制了你的100个项目,所有页面大约需要2.5秒,而且这个网站非常有用。这正是我想要的答案。非常感谢你。我将在一个开发服务器上测试它,并报告它是如何影响事情的。观察者用于确定何时下订单以及何时magento将报价转换为订单。我同意这将加快place order功能,但这对于提高网站的整体速度和从购物车页面上的DB加载100个产品并不重要,因为观察者在浏览页面时不会执行。大型目录也会受到多个不同类别产品的极大影响。确保目录的设计尽可能干净、合理。