Drupal的性能测试

这两天对Drupal做了非常简单的性能测试,过程如下:

被压力对象:Drupal6.16,刚刚安装,无任何node和只有一个admin用户。

被压力页面:无cookie的首页

被测试机器:HP DL140 G2, 2 x Xeon 2.80GHz, 2GB 四核2G内存,算起来还不错。

被测试系统:Linux Redhat 4u7 apache 2.2.11 mysql 4.1.22

压力方式:从另外一台机器开进程压力,所以压力程序不占被测试机性能。

 

压力测试数据:

  • 情况1:Apache,无apc,没有打开缓存

    • 100线程压力情况:

      • QPS:13左右
      • RT:6900毫秒左右,居然达到了惊人了6秒钟。
      • CPU:99.6%,几乎占满
      • Mem:33%
    • 5线程压力情况:
      • QPS:13左右
      • RT:359毫秒左右
      • CPU:99.6%,几乎占满
      • Mem:33%
    • 1线程压力情况:
      • QPS:13左右
      • RT:359毫秒左右
      • CPU:99.6%,几乎占满
      • Mem:33%
  • 情况2:Apache,有apc,没有打开缓存:
    • 100线程压力情况:

      • QPS:55左右
      • RT:1700毫秒左右,将近一秒钟的响应时间,非常慢。
      • CPU:99.8%
      • Mem:35%
    • 10线程压力情况:
      • QPS:55左右
      • RT:178毫秒左右,QPS虽然差不多,但是响应时间提升明显。
      • CPU:99.8%
      • Mem:30%
    • 5线程压力情况:
      • QPS:55左右
      • RT:89毫秒左右,响应时间继续减少。
      • CPU:98.7%,也有响应的下降
      • Mem:35%
    • 3线程压力情况:
      • QPS:48左右
      • RT:61毫秒左右,看来是非满负荷时候的正常响应时间,还不错。
      • CPU:73%
      • Mem:30%
  • 情况3:Apache,有apc,打开页面缓存到Normal情况
    • 100线程压力情况:

      • QPS:399左右
      • RT:238毫秒左右,也不太快,可能也是并发太多的原因。
      • CPU:98%
      • Mem:30%
    • 10线程压力情况:
      • QPS:403左右
      • RT:23毫秒左右,并发快了很多很多,缓存有作用了。
      • CPU:98%
      • Mem:35%
    • 5线程压力情况:
      • QPS:380左右
      • RT:12毫秒左右,在低负载的情况下,12ms的响应时间很不错了。
      • CPU:89%
      • Mem:16%

值得注意的是,在情况3的情况下,mysql启动占用了一个cpu的资源,而其他情况,mysql的占用资源并不多。可以看出缓存放在内存中的问题。

 

注意:这次性能测试并没有针对模块,而只是空Drupal的情况,所以这次测试只是简单的Drupal本身测试,而且并没有js和图片等静态文件的调用,并不能作为实际网站的数据,不过数据是可以参考的。

结论:从这里可以看到Drupal无缓存情况下的性能的确是个问题,会导致登录用户的问题。但是因为数据库的cpu占比并不是很高,加上Drupal本身的可扩展性,可以轻松扩展到多台Web服务器,以服务器换取开发时间是很值得的做法。

在有缓存的情况下,300多的QPS和20ms的RT基本上可以满足日常网站的要求。

建议网站打开缓存和APC,以增加性能。

计算:如果使用这样的服务器进行服务,加上APC和缓存,Drupal的用户访问80%是匿名用户的话,可以支撑差不多300每秒的访问,如果加上css和js和image的话,差不多可以接受每秒50个页面请求。按照经验值来说50个页面请求乘以50000为一个可以服务的人数:250万。也就是说,空的Drupal在一台机器上可以支持250w的PV。

优化:如果加上更多的优化模块,分几台服务器部署,并且剥离静态文件的话,内容不多的情况下,Drupal应该可以支撑上千万PV的网站。

 

今后做一下更详尽的多内容的性能测试。

感谢您关注我的个人博客!
为了您的更好的阅读和留言,建议您注册用户,这样您可以获得更大的权限,以及更方便的留言。
注册只需要一分钟的时间。但是您需要提供您的邮箱。注册后,密码会自动发到您的邮箱,请在第一次登录时修改。
我承诺不会将您的Email泄露给他人,或者发送垃圾邮件。

用户登录

我的微博

feedsky
抓虾
google reader
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点
帮看