Magento 是一个开源电子商务系统,尤其以扩展性高著称,但是很高的扩展性往往是牺牲了速度为代价的,虽然现在magento为速度提升做了很多工作,但是还是没能达到人们对速度的要求。既然如此还是很自然的选择了它,它的速度让很多客户无法接受,最近忙碌于magento性能优化。经过优化后,速度上了几个台阶,觉得能让大部分人都接受了,据本人目测最少快了(4-5倍)。

方法/步骤

1) Magento 自身cache

进入后台: System -> Cache Management– Configuration

– Layouts

– Block HTML output

– Translations

– Collections Data

– EAV types and attributes

– Web Services Configuration

全部选择 并enable,submit即可,缓存开启可以减少程序对数据库的请求,也能减少程序动态生成,所有的站点文件都会存放在缓存文件中,Apache在请求站点的时候会由程序引导去读缓存,而硬盘I/O的速度要比数据库读取速度快很多。而且缓存文件是经过索引的,自然速度更上一个数量级。

2)MySQL Cache Size 设置

ssh连接到服务器,进入/etc/目录,修改my.cnf文件,加入

query_cache_size=128M innodb_buffer_pool_size=64M innodb_additional_mem_pool=16M

这里是数据库缓存,每次用户请求数据库时会生成这个缓存,而当用户直接查询 数据库时,由于sql效率不太高,请求列队造成了延迟,从而影响整站速度,但如果有了缓存,MySQL内部会直接去缓存处读取数据,类似Apache缓 存,这样不但加速数据读取速度,还能减少数据库负载。

3) Enabling Gzipping 启用gzip压缩FTP链接到网站目录,修改.htaccess文件,删除之前的“#”即可打开以下开关

php_flag zlib.output_compression onAddHandler application/x-httpd-php5 .css

这里主要是为了加快站点信息传输速度,所有内容通过gzip压缩后传输要比原本的直接传输速度快得多。

4)开启javascript和css编译

进入后台:

system->Configuration->Developer->Javascript Setting 开启javascript编译合并

Merge javascript files->Yes

Enable prototype deprecation log->Yes

system->Configuration->Developer->CSS Setting 开启css编译合并

Merge CSS File->Yes

5)开启APC缓存机制

APC缓存机制是Linux上做分布式缓存的一个开源软件

由于服务器上默认没有安装,所以需要安装。

打开SSH链接到服务器,在终端执行命令:yum install pcre-devel (这个是pcre的开发包,安装pac必需)

安装完成后再执行命令:pecl install apc(这就是安装apc缓存)

然后再PHP.ini中加入extension=apc.so (将缓存扩展加入php配置文件)

然后修改站点配置文件/app/etc/local.xml

在之间加入

<cache>    <backend>apc</backend>    <prefix>alphanumeric</prefix>    </cache>

其实这么做相当于加了二次缓存,第一次是APC缓存,第二次是Magento自带的缓存系统.一般缓存不会太多,否则反而影响速度,当前状态下,速度算是比较快的了.

(突然发现APC偶尔会导致Apache死掉,原因是APC和Zend optimizer冲突,导致httpd进程被干掉,禁用该扩展,一切正常。)

冲突部分如下:

[Zend]    zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3    zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3    zend_optimizer.version=3.3.3    zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so    zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so    ;extension=apc.so

6)设置apache 开启 KeepAlive

KeepAlive = On (KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,如果 KeepAlive 设置为On,那么用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次 TCP 连接中完成,而不用重复建立新的 TCP 连接和关闭TCP 连接,可以提高用户访问速度。);

LoadModule deflate_module     modules/mod_deflate.so #开启mod_deflate

7)开启Magento动态编译

进入后台:

System->Tools->Compilation

查看Compilation Status 如果是Disabled,则点击右上角Enable打开,如果是Enabled,则表示动态编译已经开启.

开启动态编译是为了让程序执行的时候直接进入includes/src中读取文件,而不是去app下读取,因为magento使用的是HMVC模式,层级关系越多,速度越慢,直接去src中读取反而更快.

8) 开启Zend Optimizer优化器

magento目录中有php.ini文件,在最后一行加入:

[Zend]    zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3    zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3    zend_optimizer.version=3.3.3    zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so    zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

Zend Optimizer安装目录视情况而定,此处仅做参考

加入Zend Optimizer 可提高PHP运行速度40%-100%

(另:Zend Optimizer与APC高速缓存器存在冲突,二者之可选其一,很蛋疼。。。)

ok 初步的优化已经完成,目测速度提升约4-5倍.

from: http://jingyan.baidu.com/article/ad310e80d509ee1849f49e37.html

Magento站点优化方案的更多相关文章

  1. 一个网站完整详细的SEO优化方案

    根据自己的个人经验完成了这篇文章,希望对SEOer有点帮助,高手直接跳过,请勿喷水... 一个完整的SEO优化方案主要由四个小组组成: 一.前端/页编人员 二.内容编辑人员 三.推广人员 四.数据分析 ...

  2. magento性能优化

    magento性能优化 14个快速加载web页面的技巧: 减少HTTP请求数使用CDN增加过期头信息gzip压缩传输内容将css样式表放在页首将js文件放在页尾不使用css表达式尽量少用内联式的css ...

  3. Magento速度优化

    一.Magento Compiler可以提高 25% 到 50% 速度 Magento的性能一直是大家比较关心的焦点,现在Magento最新的版本 1.3.2.2 增加了 Magento Compil ...

  4. SEO网站优化方案

    学习许多前辈的经验,看到一些比较有价值的seo优化方案,特记录一下,对照自己的操作之路,新人也可借鉴一二,下面是从卢松松博客看到的文章.高手直接跳过,请勿喷水. 一个完整的SEO优化方案主要由四个小组 ...

  5. mysql大内存高性能优化方案

    mysql优化是一个相对来说比较重要的事情了,特别像对mysql读写比较多的网站就显得非常重要了,下面我们来介绍mysql大内存高性能优化方案 8G内存下MySQL的优化 按照下面的设置试试看:key ...

  6. magento性能优化的教程(非常详细)

    Magento是一套专业开源的电子商务系统,Magento设计得非常灵活,具有模块化架构体系和丰富的功能但有朋友会发现此模块用到了会发现非常的缓慢了,那么下面我们来看关于magento性能优化的例子. ...

  7. DedeCMS数据负载性能优化方案简单几招让你提速N倍

    前文介绍了DedeCMS栏目列表页实现完美分页的方法,避免了大部分重复栏目标题对搜索引擎的影响,对SEO更有利.今天,分享一下DedeCMS数据负载性能优化的方法. 接触织梦也有三年多时间了,对它可谓 ...

  8. 【网站管理6】_一个网站SEO优化方案

    首先,前端/页编人员主要负责站内优化,主要从四个方面入手: 第一个,站内结构优化 合理规划站点结构(1.扁平化结构 2.辅助导航.面包屑导航.次导航) 内容页结构设置(最新文章.推荐文章.热门文章.增 ...

  9. 一个网站SEO优化方案

    首先,前端/页编人员主要负责站内优化,主要从四个方面入手: 第一个,站内结构优化 合理规划站点结构(1.扁平化结构 2.辅助导航.面包屑导航.次导航) 内容页结构设置(最新文章.推荐文章.热门文章.增 ...

随机推荐

  1. Electron-vue实战(三)— 如何在Vuex中管理Mock数据

    Electron-vue实战(三)— 如何在Vuex中管理Mock数据 作者:狐狸家的鱼 本文链接:Vuex管理Mock数据 GitHub:sueRimn 在vuex中管理mock数据 关于vuex的 ...

  2. Spring中自动装配的模式

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11484037.html 自动装配模式 Reference https://docs.spring.io ...

  3. sparksql 自定义用户函数(UDF)

    自定义用户函数有两种方式,区别:是否使用强类型,参考demo:https://github.com/asker124143222/spark-demo 1.不使用强类型,继承UserDefinedAg ...

  4. boost pointer container

    1. boost::ptr_vector #include <boost/ptr_container/ptr_vector.hpp> #include <iostream> i ...

  5. shell倒计时下班时间

    #!/bin/sh offWorkTime="19:00:00" offWorkHour=${offWorkTime::} offWorkMinute=${offWorkTime: ...

  6. 旋转屏幕导致Activity重建问题的解决办法

    Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何"设置"(Configuration)的改变都可能对Activity的 ...

  7. jquery实现给循环的每一项加上不同的样式

    项目中需要实现这样的效果,模块中需要展示若干的商品,这些商品的分类名称需要显示不同的背景色,一共提供了三种背景色做选择, 这样的话就需要用这三种颜色做循环,一开始我的思路是做随机分配颜色,但是这样的话 ...

  8. bp网络全解读

    https://blog.csdn.net/weixin_40432828/article/details/82192709

  9. ELK问题处理

    1.Logstash收集tomcat日志时报错warn: log4j:WARN No appenders could be found for logger (org.apache.http.clie ...

  10. MHA+atlas(数据库的高可用与读写分离)

    学习完了mycat的高可用还是复习一下MHA+atlas吧,个人感觉还是比mycat好用,毕竟MHA有数据补全和切换主从的机制 1 MHA是什么? MHA(Master High Availabili ...