Drupal Commerce的性能优化

Drupal Commerce的性能优化

JASON
06/01/2015
Drupal Commerce的性能优化

使用Drupal开发电子商务站点的时候,经常会遇到当访问用户比较多的时候网站打不开,或者打开很慢等问题。

网站性能问题的分析与优化可以从多方面入手,如服务器配置,使用CDN,反向代理服务器,Web服务器优化,数据库优化,代码优化等等,今天本文的重点主要是使用Drupal默认的或者第三方缓存模块去优化站点,接下来会陆续推出其他方面的优化介绍及优化后的性能测试对比。

下面主要介绍Drupal重点的一些优化设置,及常用的缓存模块。

缓存

针对匿名用户启用页面缓存和区块缓存。

CSS/JS合并及压缩

后台启用CSS与JS的合并及GZIP压缩传输,更少的文件请求及更少的文件容量传输。

启用Views缓存

Drupal commerce使用大量的Views可以生成一些列表或页面,通常情况下我们以为开启了Page Cache就可以了,Views模块也有自己的缓存配置,因此我们可以开启大部分Views的缓存以节约数据库的花销。

禁用所有非必要使用的模块

在开发阶段,会启用一些调试模块或者安装测试一些模块的功能,如Devel,Drupal for firebug等,而忘了在生产服务器上禁用,很有可能会导致您的Drupal站点性能略有下降。这会很容易被忽略,但也是最容易解决的。

使用缩略图

电子商务站点通常会有很多产品图片,并且会在不同页面显示不同的尺寸,因此避免通过HTML调整使用全尺寸图片的属性,而是使用Drupal内置的Image Style来生成缩略图。

安装Entity cache模块

由于Commerce的核心架构都是基于Entity和Field API, 可以使用Entity cache模块缓存所有的Entity,从而减少数据库的连接和提高对象载入速度,针对Commerce还有一个Entity cache for Drupal Commerce模块。

使用Syslog模块

DBlog模块会将Drupal的所有日志信息记录到数据,可能会导致响应变得比较慢,因此对于生成服务器上,最好关闭DBLog模块,启用Syslog模块记录日志到系统日志中。

启用Authcache模块

一般的电子商务网站有一大半是登录用户在操作,而Drupal默认的页面缓存只是针对匿名用户,因此我们可以使用Authcache模块对登录用户也启用缓存,从而提高页面的响应速度。

替换默认的数据库缓存

Drupal默认的缓存数据都是存储在数据库中,调用缓存数据还是会去数据库中载入,可以使用第三方缓存服务模块来替换,如Memcached, Redis, MongoDB等,提高缓存的载入速度,减少数据库的连接。

常用模块

Views cache bully

该模块强制启用所有未缓存的Views基于时间缓存,当然也可以设置一些特殊的Views不启用缓存。

DB Maintenance

DB Maintenance 模块可以帮助我们对数据库的性能做定时的优化和修复,主要是执行一些优化SQL语句,比如OPTIMIZE TABLE、REPAIR TABLE等。

Block Cache Alter

Drupal提供默认的Block缓存,但是是在code级别的,Block Cache Alter可以帮助我们设置每一个block的缓存情况。

Views content cache

Views content cache模块提供了一种Views缓存机制,使得仅当Views里的内容改变时Views缓存才过期。

Authenticated User Page Caching (Authcache)

Authcache模块为匿名用户和已经登陆的注册用户同时提供了缓存功能。

Image Lazyloader

电子商务站点一般页面上会有很多产品图片的载入,Image Lazyloader模块提供了图片延迟加载功能。

Block cache

该模块能够启用任何Block的缓存。可以启用在代码禁用的Block缓存。

Memcache API and Integration or Memcache Storage

该模块提供了Drupal和Memcached的之间的集成。

Redis

该模块提供了Drupal和Redis的之间的集成。