[2009/04/16]发布《Drupal项目实战-公司订餐系统(四)》本博客内容均为原创(Original),如有雷同,纯属巧合。转载请注明出处。同时欢迎学术探讨与批评。

2008年12月7日星期日

Drupal 6, Drupal 7正在逐渐变慢?

根据kbahey的 最新测试表明(http://2bits.com/articles/performance-benchmarking-drupal-512- drupal-66-and-drupal-7x-we-are-getting-slower.html),Drpual 7Drpual 6慢,Drupal 6Drupal 慢。本文的测试数据和测试结果均取自Kbahey的试验。

试验方法

实验采用了1024号新发布的Drupal 7,以及Drupal 6.6Drupal 5.12。首先在D5的站点上,使用Devel模块创建下列数据:

Users
5000

Nodes

4950

Comments

20000

Vocabularies

20000

Terms

1000

首页有30个节点的列表,没有自定义路径,一切使用原生的。下列模块被开启:system, block, color, comment, dblog, devel_generate, filter, help, menu, node, path, taxonomy, user, watchdog

然后,将D5站点分别升级至D6D7,再进行相同的测试,这样保证测试数据的一致性,使内容不会作为测试数据差异的原因。

Benchmarking 测试

我们使用2分钟内10用户的压力测试。所有的请求都成功完成(HTTP Code 200)。这个测试运行于三种条件下:

  1. 未开启缓存机制

  2. 开启普通的缓存机制

  3. 未开启APC[1]

  4. 开启APC

服务器环境是相同的:

  • Dual Core AMD 64 X2 2.2GHz

  • 2GB RAM

  • 160GB SATA disk

  • Ubuntu 8.04.1

  • Apache 2

  • MySQL 5.0

  • PHP 5.2.4.

Benchmarking 结果

版本

开启缓存

开启APC

Trans

Elap Time

Resp Time

Trans Rate

Concurrent

D5

N

N

1994

120.25

0.6

16.58

9.97

D6

N

N

1787

120.36

0.67

14.85

9.96

D7

N

N

1255

120.47

0.96

10.42

9.95

D5

N

Y

19481

119.78

0.06

162.64

9.98

D6

N

Y

15589

120.41

0.08

129.47

9.98

D7

N

Y

11418

120.26

0.11

94.94

9.98

D5

Y

N

6537

120.42

0.18

54.29

9.99

D6

Y

N

4706

120.56

0.27

39.03

9.97

D7

Y

N

2503

120.58

0.48

20.76

9.95

D5

Y

Y

50698

119.77

0.02

423.29

9.96

D6

Y

Y

46520

120.49

0.03

386.09

9.96

D7

Y

Y

34359

120.05

0.03

286.21

9.98

Trans: 完成的请求数量。

Elap Time: 完成这些数量的测试所花费的时间(秒)

Resp Time: 每个请求完成的时间(秒)

Trans Rate:每秒中完成的事务数,值越大越表现越佳。

Concurrent: 测试中同时在线人数,应该接近于10

分析

根据上面的统计数据,可以得出一些结论:

  • 如果未开启缓存和APC,那么D6D510.43%D7D629.83%

    • D7D537.15%

  • 如果开启了页面缓存,但未开启APCD6D520.39%D7D626.67%

    • D7D541.63%

  • 如果开启了APC但未开启页面缓存,D6D527.11%D7D646.81%

    • D7D561.76%

  • 如果同时开启APC以及页面缓存,D6D58.79%D7D625.87%

    • D7D532.38%

这些数据验证了:Drupal 5是目前Drupal版本中,在未安装其它任何贡献模块的情况下,是最快速的。而且当开启了Page Cache(页面缓存)和APC时,速度最快。

3 条评论:

  1. 此结论仅供参考。我认为应该考虑一些常用的模块,比如CCK, Views等,这样才更有意义。

    回复删除
  2. 这个也不是绝对的。理论上讲,模块安装的越多,性能肯定有所降低。但我们肯定是需要在“功能”和性能之前做一个权衡。即不能只追求性能,也不能只追求功能。像Views这样便于生成列表的工具,肯定是需要的。而且,Views模块本身也有缓存功能,应该会尽可能的改善页面读取性能。

    回复删除