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

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

2023年7月3日发(作者:)

magento性能优化的教程(⾮常详细)Magento是⼀套专业开源的电⼦商务系统,Magento设计得⾮常灵活,具有模块化架构体系和丰富的功能但有朋友会发现此模块⽤到了会发现⾮常的缓慢了,那么下⾯我们来看关于magento性能优化的例⼦。前⾯优化mod_deflate模块,将text、 css 和 javascript 先进⾏压缩再发送到浏览器。这样就会减少⽹络下载量,缩短等待时间,⽰例如下:# Insert filter on all content SetOutputFilter DEFLATE # Insert filter on selected content types only AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript

# Netscape 4.x has BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine BrowserMatch bMSIE !no-gzip !gzip-only-text/html

# Don't compress images SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary

# enable resulting html compression php_flag _compression on启⽤Expires Headers注意:这⼀配置在Litespeed servers⽆效浏览器使⽤ Expires Headers来确定页⾯组件可以被缓存多长时间。静态的部件,如图像,可以设置为永不过期,但还是建议设置⼀个Expires Headers。要打开这个特性,可以取消注释对应的⾏并添加"ExpiresActive On" 如下所⽰:ExpiresActive On ExpiresDefault "access plus 1 year"禁⽤ ETagsETags(Entity tags)是服务器和浏览器的⼀个功能,它⽤来判断浏览器缓存⾥的元素是否和原来服务器上的⼀致。ETags⽐last-modifieddate更具有弹性,它⽤⼀个独⼀⽆⼆的字符串来标识⼀个元素的版本。 要关闭它很简单,做法如下:FileETag none⽇志太⼤,执⾏如下sql:truncate dataflow_batch_export;truncate dataflow_batch_import;truncate log_customer;truncate log_quote;truncate log_summary;truncate log_summary_type;

truncate log_url;truncate log_url_info;truncate log_visitor;truncate log_visitor_info;truncate log_visitor_online;

truncate report_viewed_product_index;truncate report_compared_product_index;truncate report_event;

set foreign_key_checks = 0;truncate index_process_event;truncate index_event;set foreign_key_checks = 1;mysql配置优化,充分发挥你的硬件资源,下⾯的数值要根据你的配置调整key_buffer_size = 512Mmax_allowed_packet = 64Mtable_cache = 512sort_buffer_size = 4Mnet_buffer_length = 8Kread_buffer_size = 4Mread_rnd_buffer_size = 2Mmyisam_sort_buffer_size = 64Mtmp_table_size = 128Mquery_cache_size = 96Mquery_cache_type = 1thread_cache_size = 8max_connections = 400wait_timeout = 3005、将magento的var⽬录挂载到内存中,加快读取速度,如mount -t tmpfs -o size=100M,mode=0777 tmpfs var6、安装php加速器,如APC,XCACHE,eAccelerator,安装⽅法参考相关的⽹站然⽽归于根本,最⼤的优化来⾃于对模板,对代码,对block的优化。

在Magento的优化中, Mysql的优化是很重要的,在Magento的官⽅⽹给出了有关Mysql的优化, 官⽅⽹并没有要我们把Mysql的存储引擎改为innodb, 但我觉的得这是很有必要的,当改成innodb后,还得把Mysql的配置⽂件修改修改下, 有时根据官⽅的⽂档来并不能成功, 这时就要看你的环境⽽定了, 下⾯给出我所配置的mysql⽂件给⼤家参考:(继续)[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/er=mysql# Default to using old password format for compatibility with mysql 3.x# clients (those using the mysqlclient10 compatibility package).old_passwords=1default-character-set=utf8#init_connect='SET NAMES utf8'default-storage_engine = innodb# To allow mysqld to connect to a MySQL Cluster management daemon, uncomment# these lines and adjust the connectstring as needed.#ndbcluster#ndb-connectstring="nodeid=4;host=localhost:1186"[client]#default-character-set=utf8[mysqld_safe]log-error=/var/log/[Magento]max_connections = 1000max_connect_error = 10table_cache = 1024max_allowed_packet = 16Mmax_heap_table_size = 64Msort_buffer_size = 8Mjoin_buffer_size = 8Mthread_cache_size = 8thread_concurrency = 8query_cache_size = 64Mquery_cache_limit = 2Mtmp_tables_size = 64Mkey_buffer_size = 32Mread_buffer_size = 2Mread_rnd_buffer_size = 16Mbulk_insert_buffer_size = 64Mmyisam_sort_buffer_size = 128Mmyisam_max_sort_file_size = 10Gmyisam_max_extra_sort_file_size=10Gmyisam_repair_threads = 1myisam_recoverinnodb_additional_mem_pool_size = 16Minnodb_log_buffer_size = 8Minnodb_log_file_size = 512Minnodb_log_files_in_group = 2innodb_buffer_pool_size = 3Ginnodb_data_file_path = ibdata1:3G;ibdata2:1G:autoextendinnodb_autoextend_increment=512 Apache优化这⾥主要讲的是,⾃⼰编译的Apache, ⽽如果是系统⾃带的话, Apache所需的模块, 系统会⾃动加载。(继续)#vi rverTokens OSServerRoot "/etc/httpd"PidFile run /eout 120KeepAlive offMaxkeepAliveRequests 100KeepAliveTimeout 15StartServers 100MinSpareServers 100MaxSpareServers 150ServerLimit 256MaxClient 256MaxRequestsPerChild 40000Listen *:80在这⾥还要⼀些必须的Apache模块1, mod_authz_2, mod_3, mod_4, mod_5, mod_6, mod_ 这个模块很重要, 当设置Magento地址重写时,要⽤到7, mod_log_8, 你有可能⽤的是php4, 那就得改成注意:在安装好Apache后, 我们还能让Apache识别以php为后缀的⽂件AddType application/x-httpd-php .php .phtml好了, 到这就讲完了, 这章其实对Magento的优化不⼤, 但有些模块⼜不能少, 少了, Magento后台可能出问题

当我们安装好Magento时, 为了加快Magento的速度,我们⼀般还要做⼀些对于Magento服务的优化, 来提⾼Magento被访问的速度。 ⼀般我们会从三个⾓度去考虑Magento的优化, 如: 安装Magento的系统; Magento模板中的代码; Magento所⽤到的数据库。 在这我们主要讲的是Magento系统的优化php配置优化Magento是在PHP环境下开发的, 所以优化PHP对Magento有着不⼩的影响,下⾯是Magento标准的PHP配置。(继续)⼀, 对于Magento所需的扩展, 只开启所需的就可以了# Required extensionsextension=nsion=nsion=nsion=nsion=nsion=nsion=nsion=nsion=pdo_nsion=nsion=下⾯的⼀些扩展并不需要开启, 我们可以把它们关闭# Not needed extensions from default setup;;extension=;;extension=;;extension=;;extension=pdo_;;extension=;;extension=;;extension=;;extension=;;extesnion=事⽆绝对, 当你的系统环境需要某个扩展时, 可以按照需要开启下⾯所要讲的, 也是PHP中优化的重点, 将会讲到⼆种⽅法,⼆选⼀就⾏了, 切忌, 不能同时应⽤⼆种⽅案⼀,安装APC扩展, APC, ⽤来优化PHP本⾝, 提⾼PHP的运⾏速度# APC configuration apecifics if it is usedextension=_size=_files_hint=_entries_hint=_file_size=5M⼆,安装eaccelerator加速器,功能跟APC类似, 在这就不多说了。安装好eaccelerator后,将会产⽣eaccelerator模块zend_extension="/usr/lib64/php/modules/"_size = "256"简单的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⽂件,定位到块之间,将 其中的注释⾏开启,例如: 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启⽤ Header Expires 模块打开 magento 根⽬录下的 .htaccess⽂件,定位到块之间,例如 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"禁⽤ Etag,启⽤ KeepAlive打开 magento 根⽬录下的 .htaccess⽂件,移除FileETage None⾏的注释,如果在没有启⽤KeepAlive,可在此处新增⼏⾏,例如FileETage NoneKeepAlive OnMaxKeepAliveRequests 200KeepAliveTimeout 5magento后台设置

开启产品及产品分类的 Flat 功能。开启这个功能后系统会为产品和产品分类的各个店铺视图建⽴独⽴的数据表以储存相关属性的数据,在编辑产品和分类信息的时候也会同时更新这些数据表。 前台要获得产品数据的时候,程序从这些独⽴的表中读取数据,⽽⽆需从多个 EAV 关联表中读取。这样做可以通过减少数据表的联⽴查询,有效地提⾼前台对产品数据的查询速度。开启⽅法是到后台 System / Configuration > CATALOG / Catalog > Frontend 中,分别将 Use Flat Catalog Category 和 Use Flat CatalogProduct 设成 Yes 并保存。

设置 CRON-JOB 定期清理 Log 信息。Magento 的 Log 模块会将⼀些⽹站访问记录、⽤户登录信息、购物车修改情况等记录到数据库中。这些数据多了就会让数据库变得很臃肿,⾮常影响数据读取速度。因此我们应该开启 log 信息⾃动清理功能,并设置 CRON-JOB 定期进⾏清理。后台开关路径为 System / Configuration > ADVANCED / System > Log Cleaning / Enable Log Cleaning。

关闭系统 Log 功能。Magento 系统的 Log 功能会把⼀些运⾏信息或出错信息记录到硬盘中。这些信息⼀般只在⽹站开发阶段才会⽤到,并且可能造成频繁的 I/O操作,影响程序运⾏效率。因此⽹站上线后应该把此功能关闭。后台开关路径为 System / Configuration > ADVANCED / Developer > Log Settings / Enabled。

开启 Javascript 及 CSS ⽂件整合功能。开启 Javascript 及 CSS ⽂件整合功能可以把通过 layout 加载的多个 Javascript 和 CSS ⽂件分别整合。这样做的好处是可以减少资源请求数量,加速下载速度,降低服务器负担。为了更好地利⽤这项设置,开发的时候应该尽量把 Javascript 整理到脚本⽂件⾥并通过 layout 进⾏加载,这样开启设置后所有的脚本都能只通过⼀次请求便加载完毕了。后台开关路径分别为 System / Configuration > ADVANCED / Developer > JavaScript Settings / Enabled 和 System / Configuration >ADVANCED / Developer > CSS Settings / Enabled。

为 Skin、Media、Javascript 设置 CDN 或者不同的⼦域名。由于⼀般浏览器对同⼀域名的并发请求数量都有限制,这样就算页⾯上有很多资源需要加载,也只能⼀个个地从服务器中读取,⽆法做到同时加载多个资源,影响页⾯渲染效率。后台设置路径分别为 System / Configuration > GENERAL / Web > Unsecure 及 System / Configuration > GENERAL / Web > Secure 下的Base Skin URL、Base Media URL 和 Base JavaScript URL。

开启系统缓存。可以说开启系统缓存是最有效的提速措施,因为开启后可以把初始化和逻辑计算的结果直接保存到缓存中,跳过很多重复的程序操作,最直接地节省程序运⾏时间和资源。开启缓存的⽅法是到后台 System / Cache Management 页⾯的列表中勾选需要缓存的项⽬,再选择列表右上⾓ Actions 的 Enable 并点击Submit 按钮。 关闭没有使⽤的原⽣模块。Magento 页⾯初始化的时候会查找和合并所有组件的配置⽂件,并把这些组件的在数据库中的版本与配置⽂件的版本进⾏⽐较,进⼀步执⾏组件的更新操作。不管打开的页⾯ 中是否会使⽤到,系统都会对所有开启的组件执⾏这些⼯作。显然,如果把项⽬中没有⽤到的模块也⼀起加⼊初始化是很浪费资源的,可以把不⽤的原⽣模块关闭 掉。由于模块之间有所关联,不是每个模块都能做到真正独⽴,部分模块关闭后可能导致后台出现问题。为了⽅便开发,在这⾥整理了⼀些可以简单做到安全关闭的原⽣模块。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688384245a129975.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信