我是Magento的新手,并使用CE 1.7.0.2开发了一个网站。现在它已准备好上线,但我的页面加载速度很慢。
我的网站产品主页,列表和详细信息页面最初花费时间到页面加载时间为10-13秒,但在首次加载后,页面加载只需1-2秒。
此外,我已在服务器上安装了APC,Memcache和CDN以及网站的整页缓存扩展,但速度很慢。我很沮丧为什么这会发生在我的网站上?
如果有人知道我们如何解决对我有帮助的加速问题。
谢谢!
答案 0 :(得分:4)
您可以通过以下步骤进行Magento优化:
答案 1 :(得分:1)
如果您已经完成了所有类型的服务器和缓存优化。转到代码级别。
1)看看你是否在foreach循环中加载了一个集合。
2)尝试优化代码。
3)如果要加载集合,请仅过滤所需属性的集合。
4)检查产品图像。使用png图像并尝试将图像尺寸保持在500 KB以下。
5)尝试评论您在该页面上提供的自定义功能。并使用某些工具(如GTMetrix)进行检查。加载页面需要多长时间。试着找出需要很长时间才能加载的代码。
6)在分层导航中仅保留用于过滤目的的必要属性。
7)尝试禁用不必要的模块。
8)启用编译后尝试。
希望这些建议对你有用。
答案 2 :(得分:1)
启用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