zoukankan      html  css  js  c++  java
  • Magento站点优化方案

    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 on
    AddHandler 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倍.

    如有更优方案,会继续添加.

  • 相关阅读:
    避免PHP分页中的分页出现非整数的简化代码
    PHP restful 接口
    PHP 连接数据库
    PHP图片上传
    cookie记录用户最后登录时间
    解决 各浏览器不支持display:flex的最简单办法
    PHP 生成验证码
    php文件上传
    H5图片异步拖拽上传
    H5播放器有时获取duration的值为NaN?
  • 原文地址:https://www.cnblogs.com/liuxgnu/p/3535424.html
Copyright © 2011-2022 走看看