大家一起讨论一下提高Drupal响应速度的方案

Drupal建站的确很灵活,功能很强大,但页面响应时间和其它CMS一样都非常长,对一个访问量稍大的站点来说,用户的体验很不好.
故征集大家来谈谈提高drupal性能的方案.

先提几个: 1,drupal慢的

先提几个:
1,drupal慢的原因不是drupal的错,而是php的错,使用php加速器如APC,EA至少可以提高3倍的性能.
2,减少数据库通讯次数.尽管减少数据库通信次数似乎对响应时间减少不太明显,可是对一个访问量大的网站应该有帮助吧.
php天生的弱点,使得APC有了用武之地.drupal里面可以通过APC的apc_store和apc_fetch来优化locale和variable模块,经本人修改,最终local和variable模块都不会访问数据库.
如对variable_init的修改
function variable_init($conf = array()) {
// NOTE: caching the variables improves performance by 20% when serving cached pages.

$cached = apc_fetch('cache_variables');

if ($cached ) {
$variables = $cached;
}
else {
$result = db_query('SELECT * FROM {variable}');
while ($variable = db_fetch_object($result)) {

$variables[$variable->name] = unserialize($variable->value);

}
//var_dump($variables);
apc_store('cache_variables',($variables));

}

foreach ($conf as $name => $value) {
$variables[$name] = $value;
}

return $variables;
}
使用apc cache来替代数据库可以显著提高访问速度(apc是共享内存访问)

3,通过用devel模块观察,似乎drupal慢的原因并非数据库通信,而是CPU耗时,这点的确让人沮丧......

---------------------------------------------
欢迎访问我的drupal网站http://web.srv.cn/drupal/。使用的模块有E-Commerce,Google Adsense,FlashVidie,Organic Groups.
---------------------------------------------

---------------------------------------------
当你手里拿着锤子的时候,整个世界都成了钉子。
---------------------------------------------

我的技术层次能够做

我的技术层次能够做到的就只是把前台的代码最大合理化...

非技术层次上就是把t函数输入的某些东东,直接更换为要输出的中文内容..

应用上能够做到的就是尽管合理的使用模组,不使用华而不实的模组..

在使用中能够做到的就是处理好内容组织:其实,我觉得这一个是很多的人都忽略了的,举例说,很多的人都喜欢把一个网站的所有信息都调用到首页,最近评论,论坛最新主题,活跃主题,最新用户,最新公告,用户排名榜等等,太多太多的信息放置在首页上,可能这样有利于做一个针对于搜索引擎的索引,事实上对用户的访问就吃力了,就算启用了cache机制,但是对第一次访问的用户来说,这简直就是一种折磨..事实上我们可以分开列出一些页面如/recent /recent_comments
/active_topic;/we_r_newbie;/user_by_points 等等页面, 或者说重新设计首页,把这些内容综合起来,用户可以根据自己的需要访问不同的页面等等..减少首页的数据库访问负载分担给网站的分页面,让用户对网站的第一印象稍微改善一些..
当然,如果你是一位UI高手的话。更有机会设计同不同更新颖,个性的版式受用户所喜爱..

的确,组织内容的显

的确,组织内容的显示是一种有效的提高页面速度的解决方案,但是很多时候你的选择权并不是很有效,你的考虑用户的需求,老板的要求,对,还要适应搜索引擎。

---------------------------------------------
当你手里拿着锤子的时候,整个世界都成了钉子。
---------------------------------------------

您的網站好快喔,飛

您的網站好快喔,飛快

請問
APC、EA,還有XCache
這三種加速器可以共用嗎?

加速器选择一个就够

加速器选择一个就够了,我以前对加速器抱有很大希望,但听许多人讲不论是Apc还是EA在高负载下都会出现崩溃现象。

---------------------------------------------
当你手里拿着锤子的时候,整个世界都成了钉子。
---------------------------------------------

国外有一篇使用Resin的

国外有一篇使用Resin的Quercus(Java版的PHP)来加速drupal的文章,有兴趣的可以看看。
原文:
Use Java to Improve Drupal's Scalability

http://www.sda-india.com/sda_india/psecom,id,22,site_layout,sdaindia,news,19716,p,0.html

Java版的和传统php下的drupal的性能对比:
Quercus drives 4x performance improvement for Drupal

So, to give you an idea of what kind of performance, Caucho's site claims 4x improvements over standard mod_php with many applications, including Drupal. So, we decided to use some of the machines in our lab to try this out. Seems like a good idea, no? And a drum roll please... Well, I'll be damned if they weren't correct. Here are the results:

http://www.workhabit.org/resin-backed-php-drives-4x-performance-improvements-drupal

---------------------------------------------
欢迎访问我的drupal网站http://web.srv.cn/drupal/。使用的模块有E-Commerce,Google Adsense,FlashVidie,Organic Groups.
---------------------------------------------

---------------------------------------------
当你手里拿着锤子的时候,整个世界都成了钉子。
---------------------------------------------

理论上和opcode

理论上和opcode cache的性能应该是差不多的,我试用了也没感觉快多少,我觉得php+EA已经很快了:)
或者用squid自己做反向代理会不会好些呢?

呵呵,你这1、2、3也

呵呵,你这1、2、3也是我想说的。2用ea也有对应的函数可以做到,对性能很有帮助。3确实是如你所说,其实是php执行真是慢哪,预编译了都仍然慢,这种问题我看只有类似java的多层次结构或中间件才能解决。
=======================
关注世界,发现中国。博客,与互联网络共存。
博客基地 - 菠萝菠萝蜜
http://www.blogme.cn

=======================
关注世界,发现中国。博客,与互联网络共存。
博客基地 - 菠萝菠萝蜜
http://www.blogme.cn

您好,您說的

您好,您說的 {{2用ea也有对应的函数可以做到,对性能很有帮助。}}
可以麻煩您貼出作法嗎
謝謝您了
感恩不盡

apc很不错

1。使用apc

2。开启caching

3。不用url alias. 清空url_alias table

4. 如果是vps,作些apache/mysql tuning

-----------------
iFlyChina.net
-----------------

-----------------
iFlyChina.net
-----------------

能不能问一下,你现

能不能问一下,你现在的hosting是在哪儿?

slhost

最低level的vps。大部分时间速度还可以。不过我觉得他们oversell,有时候感觉比较慢

-----------------
iFlyChina.net
-----------------

-----------------
iFlyChina.net
-----------------