Drupal性能问题及解决方案

一、在drupal建站时遇到的性能问题
1.打开网站缓慢
2.经常宕机
......
二、影响drupal网站性能的因素
1.服务器负载均衡
2.网站冗余脚本请求
3.网站设置不合理
三、drupal性能解决方案

1.Drupal服务器优化
Drupal服务器环境比较理想的还是基于LAMP组合。我们都知道其中apache受带宽的制约,PHP受CPU的制约,mysql受内存的制约。

在网站服务器配置,我们最好能够分析一下网站预计的流量,尽可能的在服务器环境(如cpu,带宽,内存,硬盘...)方面保证资源充足.并且apache,php,mysql数据库都加以优化。如果必要的时候做些数据分离的部署。

2.Drupal页面加载性能优化

在一个页面中通常20%的响应时间是在检索HTML文档,这意味着80%的响应时间实在处理css,js,图片,视频的文件如果你开发的网站就像谷歌那样的页面,就一个搜索框,那这方面问题基本不大。可大多数是样式定制性比较强而且用户体验很友好的网站,要求css和js文件比较多。该问题就比较严重了。

(1).把css文件放在页面的顶部
在<head>标签之前,

drupal, drupal_add_css(). css是层叠样式表单,后面会覆盖前面的,同时在css文件没有加载完毕之前,css对页面是没有作用的,页面需要渲染。

(2).把js文件放在页面底部
只在</body>之前就可以。
在页面加载的时候,当浏览器读到js执行语句的时候一定会把它全部解释完毕后才会接下来读下面的内容。为了防止script脚本的执行阻塞页面的下载。

<?php print $scripts ?>
<?php print $closure ?>

(3).引用外部的css和Js文件
这样不仅有利于性能也有利于代码维护.把css和js写在页面内容可以减少2次请求,但也增大了页面的大小。如果已经对css和js做了缓存,那也就没有2次多余的http请求了。当然,有些特殊的页面我们还是会选择内联的css和js文件。

(4).避免地址重写
http://www.drupaluser.org/node/1 重新起别名到http://www.drupaluser.org/download这种重定向自然也是需要消耗时间的。当然这只是一个例子,发生重定向的原因还有很多,但是不变的是每增加一次重定向就会增加一次web请求,所以因该尽量减少。

(5).减少dns查询
internet上的域名和ip地址之间是一一对应的。计算机之间只认ip地址,域名最终都要解析到相应的ip地址。所以在页面中尽量少调用代域名的链接,如好多时候网站代码里用代域名的绝对路径。

3.使用drupal模块

首先我们应该使用drupal自身的性能模块,在管理页面中开启性能,可以设定时间周期来清除缓存。同时也可以压缩合并css文件

其次推荐drupal在性能方面的第三方模块:

Advanced cache, Authcache, Block Cache Alter, Boost, Cache browser, CacheExclude, Cache Router, CSS Gzip, Javascript Aggregator, Memcache, Path Cache.....
http://drupal.org/project/modules?filters=tid:123&solrsort=sis_project_r...

(作者:何金龙)

taxonomy: