网站建立以后,记录一下Drupal的性能测试数据:
方案一(当前方案,这两天改用的,大家有没有觉得快了好多的感觉?):
数据库服务器:DELL2640机架式服务器 双路超线程至强P4 2.4G 533M外频,内存512M ECC,15K转速 36G SCSI320 硬盘,Mysql 4.0.18;
应用服务器:P4 2.4G 内存768M,西部数据8M缓存7200转ATA硬盘,Apache 2.0.50 + php 4.3.8 + Drupal 4.4.0核心。
方案二:
PIII 800EB 双路,18G 10K转速 SCSI160 硬盘,内存768M。软件都跑在这部计算机上。
Drupal内置Cache机制,避免每次访问页面进行大量的数据库访问和PHP脚本计算。虽然Drupal只对登录用户匿名用户使用Cache,这样,匿名用户访问页面时,某些数据不会是即时更新的正确数据,如当前在线,用户登录后就不使用Cache机制,最多只需刷新一下页面即可看到正确的最新内容。
当不使用Drupal的Cache机制:
方案一:在50用户并发访问首页时能够正确地响应,首字节到达客户端时间最快为10秒,平均23秒完成 首页下载。超过此并发数字后性能急剧下降。
方案二:在50用户并发访问首页时性能急剧下降,客户端基本超时,在Web服务器由Apache 改为 IIS 6后(晕,但确实是这样),首页能够响应,首字节到达客户端时间最快为44秒,平均95秒完成首页下载。
前一阵子本站没有使用Cache机制,所以打开Cache机制又测试了一下:
目前使用的方案一配置下,在150用户并发访问首页时能够正确地响应,首字节到达客户端时间最快为5秒,平均15秒完成首页下载,超过此并发数字后性能急剧下降。
结论:打开Drupal的Cache机制后响应速度至少可以提高1倍,能够支持的并发用户数可以提高3倍。这样看来,我们还是打开Cache机制的好,虽然“在线统计”在匿名用户下没有正确的工作,但对其他页面内容和登录用户却没有什么影响。
测试中的发现:Drupal将大量的进行数据库运算,因此数据库服务器CPU一定要够强、硬盘一定要快,150-200用户并发访问时无Cache方式双P4至强CPU保持使用率在70%左右;对windows下Apache服务器来说,并发访问时消耗内存非常厉害,完全是非线性的增长,估计没有2G不能应付一个中等繁忙的网站——不知道FreeBSD或者Linux下的Apche是否要省点?谁能告诉我?不过也可能是PHP的原因,在IIS 6 下跑PHP的时候,内存消耗也比较厉害,比Apache能好上一点点。感觉PHP在同等硬件的负荷能力上比Java要逊色嘛。
奇怪的是,感觉双路PIII的性能还可以,这样子跑一个访问量1000IP/天左右的网站估计刚好够,再多肯定是不成的啦。
希望大家不要笑我的硬件差,呵呵。你的支持就是我前进的动力。

