[转]magento性能优化
本文转自: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:
[转]magento性能优化的更多相关文章
- magento性能优化
magento性能优化 14个快速加载web页面的技巧: 减少HTTP请求数使用CDN增加过期头信息gzip压缩传输内容将css样式表放在页首将js文件放在页尾不使用css表达式尽量少用内联式的css ...
- magento性能优化的教程(非常详细)
Magento是一套专业开源的电子商务系统,Magento设计得非常灵活,具有模块化架构体系和丰富的功能但有朋友会发现此模块用到了会发现非常的缓慢了,那么下面我们来看关于magento性能优化的例子. ...
- [转]magento性能优化的教程(非常详细)
本文转自:https://www.sypopo.com/post/kMQE8dERoV/ 前面优化 mod_deflate模块,将text. css 和 javascript 先进行压缩再发送到浏览器 ...
- Magento站点优化方案
Magento 是一个开源电子商务系统,尤其以扩展性高著称,但是很高的扩展性往往是牺牲了速度为代价的,虽然现在magento为速度提升做了很多工作,但是还是没能达到人们对速度的要求.既然如此还是很自然 ...
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
- [转]论magento1和magento2的速度性能优化问题
本文转自:http://www.360magento.com/blog/magento-speed-up/ magento从2007年发展至今,也经历了十余年的磨练,如今也迎来了magento的换代产 ...
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
随机推荐
- Azure DevOps Server(TFS 2019) 中的SonarQube扫描任务出现错误:AppTest.java can't be indexed twice
SonarQube错误描述 将一个Maven示例程序导入到Azure DevOps的待库中,执行SonarQube扫描过程时, DevOps Server提示下面的错误信息: [ERROR] Fail ...
- ue4开发入门教程
ue4是一套开源跨平台的游戏引擎,游戏画质3A水准,具有强大的材质编辑器,各种插件齐全.想要学习ue4的,可以参考这篇文章作为入门. 学习这篇文章,建议具有一定的C++基础,对游戏有一定了解. 1.首 ...
- js中两种for循环的使用
针对两种for循环的使用 1. for in循环的使用环境 可用在字符串.数组.对象中, 需注意:其中遍历对象得到的是每个key 的value值 2. for 变量递加的方式 ...
- 微服务统一登陆认证怎么做?JWT ?
无状态登录原理 1.1.什么是有状态? 有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session. 例如登录:用户登 ...
- MariaDB 备份与日志管理(13)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- MariaDB 数据库索引详解(9)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- 文本属性和字体属性,超链接导航栏案例 background
文本属性 介绍几个常用的. 文本对齐 text-align 属性规定元素中的文本的水平对齐方式. 属性值:none | center | left | right | justify 文本颜色 col ...
- hashMap tableSizeFor 实现原理
基于jdk1.8 hashMap实现,要求容量大小是2的整次方,例如:2/4/8/16/32/64/128...,而不能是中间的某个值.这是为什么呢? map是数组+链表的数据结构,读写数据都需要首先 ...
- 链表(上):如何实现LRU缓存淘汰算法?
一.什么是链表 和数组一样,链表也是一种线性表. 从内存结构来看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构. 链表中的每一个内存块被称为节点Node. ...
- 重拾 BFC、IFC、GFC、FFC
温故知新,巩固基础 从 FC 开始 FC,Formatting Context,格式化上下文,是 W3C CSS2.1 规范中的一个概念,定义的是页面中一块渲染区域,并且有一套渲染规则,它决定了其子元 ...