PHP异步处理及在Drupal中的应用(续)

归类于服务器技术 参与评论

前文《PHP后台进程/异步处理的用法及在Drupal中的应用》讲解了如何在PHP和Drupal中使用异步处理的方法,该方法应用的是操作系统的后台进程,本文讲解另一种异步处理的方法。

ignore_user_abort

这是一个PHP运行时的参数,如果设置为1,那么PHP程序会一直运行直到程序结束,而不论当前的HTTP请求是否已经关闭。所以,我们可以这样假设,给用户快速返回想要的运行结果,把和用户界面无关的操作放到后面继续运行,那么就可以提高页面的响应速度,提高用户的页面体验,从而侧面提高网站的性能
不过这个操作没有像之前方法中的后台进程那样简单,这个需要对HTTP协议已经PHP进程的运行有所了解。

Continue reading “PHP异步处理及在Drupal中的应用(续)” »

674 Views , ,

通过Hack来提高Boost模块的性能

归类于Drupal 一条评论

Boost模块,Drupal高性能网站中的必备利器,前文《Drupal性能优化之-将Boost模块用到极致》详细讲解了几处对Boost模块的优化。但是近期笔者通过对一个大型Drupal网站的性能跟踪,发现Boost模块本身会有性能问题,本文就几点Boost的使用经验做个总结。

1. 防止Boost清除缓存
Boost模块实现了hook_nodeapi,在node每次更新、保存等操作的时候,Boost都会清除cache。Boost清除内存是一个极其费时的操作,在许多场合下,我们不需要清除缓存的操作,比如content_profile的操作。
Continue reading “通过Hack来提高Boost模块的性能” »

762 Views , ,

Drupal静态页面缓存利器-Boost模块与Ajaxblocks模块

归类于Drupal 参与评论

我们知道,Drupal的Boost模块是Drupal静态页面缓存的必备模块,关于Drupal整体优化,请参考前文《让猪去飞-漫谈Drupal性能优化经验贴》。

Boost模块只提供匿名用户的静态页面缓存,但多数情况下,我们站点的登录用户访问量也很大,我们需要让登录用户也使用静态页面缓存。这里有一个前提,就是登录用户看到的页面和匿名用户看到的页面比较相似,除了一两个DIV里面会显示登录信息之外。

Continue reading “Drupal静态页面缓存利器-Boost模块与Ajaxblocks模块” »

2,237 Views , , ,

Varnish构建高负载Drupal网站 – 高级篇

归类于服务器技术 3 条评论

继上篇高负载网站之Varnish与Drupal – 基本篇后,本篇我们来深入讨论Varnish的优化,缓存页面,ESI,Cookie过滤,登录用户的缓存以及与Drupal的配合使用等相关话题。

首先我们熟悉一下两个VCL的函数

regsub(string, pattern, replacement); //正则替换
regsuball(string, pattern, replacement); //同上,只是替换所有遇到的问题

Continue reading “Varnish构建高负载Drupal网站 – 高级篇” »

3,800 Views , , ,

Drupal性能优化之-将Boost模块用到极致

归类于Drupal | 服务器技术 37 条评论

Boost模块是Drupal的一个静态页面缓存模块,效率非常之高,如果还不了解,请参考《让猪去飞-Drupal性能优化贴》,本文就使用Boost以及如何 hack该模块来打造高性能Drupal网站做简单介绍。

一般情况下,Boost模块适用于匿名访问多的Drupal站点,因为这会直接去访问事先建好的静态页面,效率很高,不需要进行数据库查询。但是在很多情况下,我们的网站需要用户登录,以登录用户的方式访问网站,但是,网站的很多内容其实和匿名用户看到的完全一样。

举个例子,比如新浪博客,腾讯博客等。当用户登录之后和匿名用户看到的博文完全一样,唯一不同的就是上面的用户信息(topbar),也可以称之为顶栏或者侧栏。(参考下图)
Continue reading “Drupal性能优化之-将Boost模块用到极致” »

8,148 Views , , , ,

顶部