本文转自:https://www.cnblogs.com/zhengyanbin2016/p/5577792.html

magento性能优化

14个快速加载web页面的技巧:

减少HTTP请求数
使用CDN
增加过期头信息
gzip压缩传输内容
将css样式表放在页首
将js文件放在页尾
不使用css表达式
尽量少用内联式的css和js,将其放置在外部资源文件中
减少DNS检索次数
压缩js文件
避免页面重定向
移除重复脚本
配置实体标签
缓存ajax请求

简单的linux优化提示:

系统采用最小化安装,仅安装必需的软件包,不装GUI/X-Window等
停止或禁用无需使用的服务,比如cups
调优内核参数: (例如)
# echo '8192' > /proc/sys/fs/file-max
# echo '32768' > /proc/sys/fs/inode-max
# echo 268435456 > /proc/sys/kernel/shmall (SHMALL可用共享内存的总数量 单位:字节or页面[如果是字节,就和 SHMMAX 一样;如果是页面,ceil(SHMMAX/PAGE_SIZE)] )
# echo 268435456 > /proc/sys/kernel/shmmax
#ulimit -n 4096

编译 apache HTTP服务器

编译必须模块时使用静态编译的方式来取代DSO(动态共享对象)方式,并且禁用无需使用的模块:
./configure --prefix=/usr/local/apache2 --disable-status --disable-userdir --disable-threads 
--disable-ipv6 --enable-modules='ssl so rewrite deflate headers expires'

启用 mod_deflate 模块

说明: DEFLATE 输出过滤器,允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽

打开 magento 根目录下的 .htaccess文件,定位到<IfModule mod_deflate.c></IfModule>块之间,
将 其中的注释行开启,例如:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary
</IfModule>

启用 Header Expires 模块

打开 magento 根目录下的 .htaccess文件,定位到<IfModule mod_expires.c></IfModule>块之间,例如

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 month"
    ExpiresByType text/html "access plus 1 month"
    ExpiresByType text/plain "access plus 1 month"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>

禁用 Etag,启用 KeepAlive

打开 magento 根目录下的 .htaccess文件,移除FileETage None行的注释,如果在httpd.conf没有启用KeepAlive,可在此处新增几行,例如

FileETage None
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 5

Mysql 快速优化

在 my.conf 中变更以下参数:

skip-name-resolve
innodb_buffer_pool_size=768M
innodb_flush_log_at_trx_commit=2

时常使用Tuning Primer程序监测mysql运行状态并调整相应的配置参数

PHP编译

类似apache编译方式,采取静态编译的方式来编译扩展,并禁用无需的模块:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs 
--with-config-file-path=/etc/php --with-png-dir --with-jpeg-dir --with-gd 
--with-curl --with-zlib --enable-mbstring --with-mcrypt --with-freetype-dir=/usr 
--with-mysql=/usr/bin/mysql --with-mysqli --enable-pdo --with-pdo-mysql=/usr/bin/mysql 
--without-pdo-sqlite --with-openssl

为PHP安装 eAccelerator 插件

从 eAccelerator.net 下载最新的稳定版本,编译时启用共享内存:

./configure --with-eaccelerator-shared-memory --enable-eaccelerator=shared 
--with-php-config=/usr/local/php/bin/php-config

完成上述操作之后,我们已经完成了步骤A:

添加 过期头信息
gzip压缩组件配置
配置实体标签

此时我们拥有了:

一个能最大程度促进站点性能的轻量级的LAMP环境
一个足够快的运行Magento的环境

现在 让我们正式进入到Magento调优阶段

先看看Magento系统内置的优秀的性能优化模块:

多种适配器缓存
编译
合并css和js文件
并行下载

启用 Magento 缓存

管理面板->System->Cache Management

All Cache -> Enable
Layered Navigation(层次化导航) -> Yes

管理面板->System->Configuration->Catalog->Frontend

Use Flat Catalog Category -> Yes
Use Flat Catalog Product -> Yes

启用eAccelerator适配器

打开 {Magento_root}/app/etc/local.xml,在里面增加如下3行
...
    </resources>
    <session_save><![CDATA[files]]></session_save>
    <cache>
        <backend>eaccelerator</backend>
    </cache>

启用编译

管理面板->System->Tools->Compilation(编译)->Run compilation Process

合并 CSS & JS 文件

管理面板->System->Configuration->Developer

js 设置->合并js文件->YES
css 设置->合并css文件->YES

并行下载设置
通过虚拟主机将magento下的资源目录划分成几个子域名,例如:

js.iamsese.cn -> {Magento_root}/js
media.iamsese.cn -> {Magento_root}/media
skin.iamsese.cn -> {Magento_root}/skin

然后去管理面板->System->Configuration->Website->Unsecure(不安全的,非加密的),and configure the basic URLs accordingly(相应的)

现在你完成了:

减少HTTP请求数
将css样式表放在页首
将js文件放在页尾
尽量少用内联式的css和js,将其放置在外部资源文件中
减少DNS检索次数
压缩js文件

现在把它们拼凑在一起:

减少HTTP请求数
增加过期头信息
gzip压缩传输内容
将css样式表放在页首
将js文件放在页尾
不使用css表达式
尽量少用内联式的css和js,将其放置在外部资源文件中
减少DNS检索次数
压缩js文件
避免页面重定向
移除重复脚本
配置实体标签
缓存ajax请求

现在 你已经完成了 12/14,这就能足够为初学者使用了

工具&程序:

Firebug:     
YSlow:
Page Speed:
Tuning Primer:
WebPagetest:

Write the code ,change the world!

[转]magento性能优化的更多相关文章

  1. magento性能优化

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

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

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

  3. [转]magento性能优化的教程(非常详细)

    本文转自:https://www.sypopo.com/post/kMQE8dERoV/ 前面优化 mod_deflate模块,将text. css 和 javascript 先进行压缩再发送到浏览器 ...

  4. Magento站点优化方案

    Magento 是一个开源电子商务系统,尤其以扩展性高著称,但是很高的扩展性往往是牺牲了速度为代价的,虽然现在magento为速度提升做了很多工作,但是还是没能达到人们对速度的要求.既然如此还是很自然 ...

  5. MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图

    http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...

  6. [转]论magento1和magento2的速度性能优化问题

    本文转自:http://www.360magento.com/blog/magento-speed-up/ magento从2007年发展至今,也经历了十余年的磨练,如今也迎来了magento的换代产 ...

  7. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  8. 03.SQLServer性能优化之---存储优化系列

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/60413 ...

  9. Web性能优化:What? Why? How?

    为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...

随机推荐

  1. CentOS 7.0 Firewall防火墙配置

    启动停止 获取firewall状态 systemctl status firewalld.service firewall-cmd --state 开启停止防火墙 开机启动:systemctl ena ...

  2. [转载]持续交付和DevOps的前世今生

    作者/分享人:乔梁,20年IT老兵,腾讯公司高级管理顾问,敏捷和精益开发专家,持续交付领域先行者.曾就职于百度,国内多个知名互联网公司的企业教练. 历年QCon技术大会的讲师和专题出品人. 这是一个新 ...

  3. 查看指定spid的脚本当前运行情况和状态

    USE MasterGO declare @spid int; select @spid = 419--null:all ; ;WITH DATA(spid,blockRelationship,blo ...

  4. 单片机编译器Keil提供的sprintf有点问题

    AduC70xx系列,Keil提供的sprintf函数不太好用,好像有时会引起内存泄漏,造成不可预知的死机情况出现.

  5. unity 人工智能AI,装备解锁临时笔记

    A*算法的一种改进设想:1.如何让角色到达目标点的过程中更加平滑:获取一串到达目标点的网格串之后,就实时用带形状的物理射线检测能否直接到达下一个目标点的再下一个目标点,如果能到达,那么直接朝该方向运动 ...

  6. 改变PowerDesigner数据模型字体大小

    一 改变左侧菜单字体大小Tools----->General------->Fonts-------->根据item选项的不同改变字体的大小 二 改变数据模型Table的字体大小To ...

  7. idea使用Protobuf插件

    1.protobuf简介 Protobuf是一个灵活的.高效的用于序列化数据的协议.相比较XML和JSON格式,protobuf更小.更快.更便捷.Protobuf是跨语言的,并且自带了一个编译器(p ...

  8. Akka(42): Http:身份验证 - authentication, authorization and use of raw headers

    当我们把Akka-http作为数据库数据交换工具时,数据是以Source[ROW,_]形式存放在Entity里的.很多时候除数据之外我们可能需要进行一些附加的信息传递如对数据的具体处理方式等.我们可以 ...

  9. 记一次线上事故的JVM内存学习

    今天线上的hadoop集群崩溃了,现象是namenode一直在GC,长时间无法正常服务.最后运维大神各种倒腾内存,GC稳定后,服务正常.虽说全程在打酱油,但是也跟着学习不少的东西. 第一个问题:为什么 ...

  10. dubbo实现原理之动态编译

    Dubbo为了实现基于spi思想的扩展特性,特别是能够灵活添加额外功能,对于扩展或则策略选择的设配类能够动态生成.对于一些需求已知的类如Protocal,它们的设配类代码dubbo可以直接的提供,但是 ...