根据kbahey的 最新测试表明(http://2bits.com/articles/performance-benchmarking-drupal-512- drupal-66-and-drupal-7x-we-are-getting-slower.html),Drpual 7比Drpual 6慢,Drupal 6比Drupal 慢。本文的测试数据和测试结果均取自Kbahey的试验。
试验方法
实验采用了10月24号新发布的Drupal 7,以及Drupal 6.6和Drupal 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站点分别升级至D6和D7,再进行相同的测试,这样保证测试数据的一致性,使内容不会作为测试数据差异的原因。
Benchmarking 测试
我们使用2分钟内10用户的压力测试。所有的请求都成功完成(HTTP Code 200)。这个测试运行于三种条件下:
-
未开启缓存机制
-
开启普通的缓存机制
-
未开启APC[1]
-
开启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,那么D6比D5慢10.43%,D7比D6慢29.83%
-
D7比D5慢37.15%
-
-
如果开启了页面缓存,但未开启APC,D6比D5慢20.39%,D7比D6慢26.67%。
-
D7比D5慢41.63%
-
-
如果开启了APC但未开启页面缓存,D6比D5慢27.11%,D7比D6慢46.81%
-
D7比D5慢61.76%
-
-
如果同时开启APC以及页面缓存,D6比D5慢8.79%,D7比D6慢25.87%
-
D7比D5慢32.38%
-
这些数据验证了:Drupal 5是目前Drupal版本中,在未安装其它任何贡献模块的情况下,是最快速的。而且当开启了Page Cache(页面缓存)和APC时,速度最快。
此结论仅供参考。我认为应该考虑一些常用的模块,比如CCK, Views等,这样才更有意义。
回复删除会不会安装后效能更差呢?
回复删除这个也不是绝对的。理论上讲,模块安装的越多,性能肯定有所降低。但我们肯定是需要在“功能”和性能之前做一个权衡。即不能只追求性能,也不能只追求功能。像Views这样便于生成列表的工具,肯定是需要的。而且,Views模块本身也有缓存功能,应该会尽可能的改善页面读取性能。
回复删除