提高magento网站的性能。

时间:2014-05-13 12:47:16

标签: php ajax performance magento magento-1.8

我尝试了所有可能的方法来加速magento网站。但是我没有从中获得任何结果。

我遵循了以下一些方法..

  

启用所有Magento缓存层。

     

启用gzip压缩。

     

安装GTspeed Plugiin并优化图像,js和CSS。

但没用。我的网站的响应率仍然很低。

我在Magento中尝试了编译选项。但它并没有变化,当我在一段时间之后点击编译过程时它会变得

  

500内部错误。

以下是我的Magento网站:http://shyamwerragrandmart.com/

我还有另一个问题。在我的网站上尝试将任何产品添加到购物车时,它几乎需要30秒-1分钟才能添加到购物车中(使用ajax)。这必须减少。我能为此做些什么。?

我在这里使用Go Daddy Web托管服务。

具有无限带宽和无限空间。

请建议我提高网站效果的更好选择。

3 个答案:

答案 0 :(得分:5)

您可以通过以下步骤进行Magento优化:

  1. 高性能专用服务器。例如:Amazon EC2云
  2. 交换Apache for NGINX
  3. 尽量减少使用Javascript
  4. 缩小和压缩的CSS文件
  5. 'Combine CSS'旨在减少a的HTTP请求数量 浏览器
  6. 优化图片
  7. 对图像使用lazyload
  8. 指定图像尺寸
  9. 将图像合并到CSS精灵中
  10. 使用内容分发网络(CDN)提供静态文件  像JS,CSS和图像来卸载你的服务器
  11. 禁用不需要的模块/扩展程序
  12. 启用所有Magento缓存
  13. 使用整页缓存/清漆缓存/ Memcache / RedisCache
  14. 如果你真的不需要,请不要使用分层导航  很多资源
  15. 启用编译
  16. 在产品概述页面上限制产品数量。
  17. 仅将那些属性前端属性设置为“是”  实际上会去使用。将所有其他设置为“否”。
  18. 请勿在快速搜索,高级搜索比较等中使用:目录   - >属性 - >管理属性 - >前端物业。
  19. 安装Google Page Speed模块
  20. 最小化重定向 - 将HTTP重定向从一个URL最小化到  另一个会缩短用户的等待时间。
  21. 首选异步资源 - 异步获取资源  防止这些资源阻止页面加载。

答案 1 :(得分:2)

此列表可以帮助您提高Magento的性能:

启用Magento缓存

这是优化的第一步:启用Magento管理面板中的所有可用缓存。

压缩图片

许多人忘记了图像(PNG,JPG)可以被压缩,这会降低浏览器和网络服务器之间的带宽。不仅Magento皮肤使用的图像需要优化,而且目录图像也需要优化。各种工具允许您压缩批量图像,例如在线工具Smush.It。

禁用不需要的Magento模块

通过禁用您不需要的Magento模块,需要更少的资源 - 就这么简单。可以通过Magento管理面板中的配置禁用模块,也可以通过编辑app / etc / modules中的XML文件来禁用模块。例如,禁用Mage_Log,它对每个请求执行查询,但如果您使用外部程序收集站点统计信息则不需要。

为小型网上商店启用平面目录

对于较小的网上商店,从复杂的EAV结构切换到平面目录可以节省时间。这种优化是可疑的,取决于许多参数,所以不要轻易采取这一步骤。

符合W3C

虽然可以说这对于HTML5的出现并不那么重要,但事实是,如果您的网页充满了丑陋的错误,浏览器将难以解释它。如果您坚持W3C合规性,则确保浏览器引擎可以轻松解析您的HTML代码。

一般压缩输出

通过启用PHP设置zlib.output_compression,PHP生成的输出在发送到浏览器时会被压缩。这节省了带宽。您也可以使用Apache mod_deflate模块,而不是使用它,这也允许压缩非PHP输出(CSS,JavaScript,其他纯文本文件)。

配置PHP选项

大多数PHP设置实际上并不影响Magento的性能,只是设置了一定的限制。例如,memory_limit和max_execution_time等设置不会增加页面加载,只是确保某些操作不会超时或遇到内存问题。

会话存储空间

使用Magento,会话可以存储在文件或数据库中(通过配置app / etc / local.xml)。哪个选项表现最佳,实际取决于托管环境的设置方式。如果MySQL数据库运行良好,数据库中的会话存储可能会使您的站点受益。但如果没有正确设置MySQL,最好的选择可能是文件。

使用PHP加速器

通过操作码缓存,可以固定PHP执行。有各种PHP加速器可以完成这项工作(APC,ZendOptimizer +,eAccelerator,XCache)。 APC和ZendOptimizer +都与Magento完美配合。

调整PHP realpath_cache

通过将PHP realpath_cache_size调整为例如128K(默认为16K)并将realpath_cache_ttl调整为86400,事情可能会加速。确保没有内存不足,因为每个Apache子节点都将使用配置的缓存大小。

使用Apache mod_expires

通过告诉浏览器哪些文件在缓存中保留多长时间,您可以优化浏览器缓存。例如,JavaScript文件的变化往往比CSS文件少得多(至少在网站的第一阶段),但也许在网站运行平稳几个月之后,您可以最大化到期日期。

小心404错误

每次找不到文件(如样式表或图像)时,都会生成404错误。因为Magento的默认404被Magento本身的应用程序捕获,这导致Magento应用程序在每遇到404时启动。检查Apache日志以确保解决所有404错误。

禁用Magento记录

在Magento配置中,您可以在Developers-tab下启用日志记录。这取决于Magento模块,这可能会导致需要将更多日志写入文件系统,从而减慢您的商店速度。因为日志使用时只需要调试日志功能,所以最好完全禁用日志记录。

MySQL表优化

通过phpMyAdmin,您可以在特定的Magento数据库表上执行命令OPTIMIZE TABLE。当桌子混乱时,这可以提高性能。这不仅可以计算复杂的EAV表,还可以计算经常使用的常规MySQL表(例如,core_config_data)。

合并CSS和JavaScript

通过将所有CSS和JavaScript文件合并为一个大文件,浏览器只需要一个HTTP请求即可获取此内容。这节省了带宽。对于这种合并,可以使用FooMan Speedster模块。 Magento 1.4包含一个合并CSS的选项,而默认情况下会合并JavaScript文件。

除了合并之外,FooMan Speedster还提供了一个选项:它从输出中删除了空格,但是当压缩已经应用于CSS时,这个选项就不那么需要了。

使用Magento编译器模块

Magento编译器模块限制了PHP在查找PHP文件时必须搜索的目录数。这减少了PHP执行时间,从而加速了Magento应用程序。

警告您在更改Magento系统时需要小心,同时启用Magento编译器。只有在(暂时)禁用编译器时才应进行升级。

一个非常巧妙的技巧是为了极大地加速事情,专门为includes / src文件夹创建一个tmpfs-mount。请注意,此tmpfs-mount必须至少为100Mb - 最好是200Mb。

MySQL服务器调整

默认的MySQL设置足以运行一般的托管环境,但并非全部针对Magento进行了优化。调整query_cache_size等设置可以大大提高性能,但也很危险,因为它极大地依赖于其他变量(数据库数量,每个数据库的表数,查询数量,峰值使用情况)。

通过CDN提供静态内容

静态内容(如图像,CSS样式表或JavaScript文件)可以通过其他针对静态内容进行优化的服务器提供。例如,可以使用CDN,以便始终从最接近访问者的位置提供静态内容。这对于为全球客户提供服务的网上商店至关重要。

禁用本地Magento模块

如果您的站点不需要本地Magento模块,您可以选择全部跳过搜索本地模块。在app / etc / local.xml文件中,您将找到一个允许您这样做的XML标记。

小心使用HTTPS

每次在Web服务器和浏览器之间使用SSL时,都会在双方添加加密和解密过程。带宽也有轻微的开销。如果您为所有页面或仅几页禁用SSL,Magento站点的运行速度会稍快一些。但是,与本页中的其他胜利相比,这个“胜利”是如此之小,只应谨慎处理。获得的带宽并不重要,而现在几乎所有计算机都具有CPU功率,加密/解密过程以微秒为单位。

云中的Magento

虽然CDN可用于优化静态内容的带宽,但Magento应用程序也可以通过使用云计算以相同的方式进行优化。

基于内存的动态数据文件系统

通过在基于内存的文件系统(如RAMdisk或tmpfs)上存储动态数据(var / cache,var / session),可以减少磁盘I / O.

禁用Apache htaccess文件

当允许使用htaccess文件时,Apache需要检查其路径中的每个目录以查看是否存在htaccess文件。通过将Apache配置指令从htaccess文件移动到VirtualHost配置文件,并同时禁用htaccess文件,可以缩短Apache执行时间。在大多数情况下,此提示可能仅适用于专用服务器。

使用Nginx或Litespeed

虽然Apache Web服务器的配置非常灵活,但还有其他Web服务器可以更好地优化内存使用:通过用Nginx或Litespeed替换Apache,您可以进一步加速Magento脚本。两个Web服务器都需要手动配置以允许SEF URL。

对图片使用lazyload

加载页面时,访问者通常会等待该页面上的图片加载。根据这些图像的数量和大小,这可能需要一些时间。您可以添加LazyLoad JavaScript效果,以确保仅加载可见图像(在浏览器屏幕中),而只有在访问者向下滚动时才加载剩余图像,而不是在加载页面时立即加载图像。

最小化Apache日志记录

如果最小化Apache日志记录,则每个传入请求都需要较少的文件操作。当然,减少记录也意味着在出现问题时缺乏洞察力。另一种方法是优化存储Apache日志的文件系统。默认情况下,Apache会记录到/ var文件系统 - 但是不需要为该文件系统启用日志记录等功能。

参考:http://magentotutorialbeginners.blogspot.in/2014/05/magento-performance-improvement.html

答案 2 :(得分:0)

通常,共享托管不是Magento的最佳托管类型。尤其是Go Daddy,他们是出了名的坏人。找到别的东西,如果去VPS或专用主机路线太多,Nexcess有不错的共享主机方案。

其他帖子涵盖了大多数主题,但一旦确保了可靠的托管,请尝试使用整页缓存。

无耻插件:我推荐使用Brim的整页缓存http://ecommerce.brimllc.com/full-page-cache-magento.html。也许我写的时候有点偏见,但是它在企业和社区上运行的优秀FPC,有打孔,并且可以通过管理面板完全配置。

相关问题