Drupal加速之——服务器软件环境比较

如何建立一个高速的Drupal服务器,每个人都有自己的看法。究竟什么样的服务器环境最有利于提高Drupal站点的性能呢?下面我们建立了一个测试环境进行性能比较。

测试环境

测试环境用的是Drupal版本4.7,带有2000个用户,5000个节点,5000个别名,以及10000个评论,带了250个的15个分类。如果你不知道这些内容的意思,那大概你不是一个Drupal用户,建议你试试Drupal,或者先看看这篇文章-Drupal 术语。不过没关系,如果你对web服务器有一些认识,或许也有兴趣看下去。

下一步,我们配置站点首页显示10个节点,页面左右栏目启用若干块,建立主要链接,增加搜索功能,还使用Drupal的联系人模块建立了一个联系人页面。从下面的图片我们可以看到最终的站点首页是什么样子的。

drupal

测试用的机器是一台三年前的Pentium IV 3Ghz,2GB内存,运行Gentoo Linux。我们总共要使用的软件是Apache 2.0.55, Lighttpd 1.3.16, PHP 4.4.2, PHP 5.1.4, 以及只有最基本配置的MySQL 4.1.4。采用Apache的ab2来测试每秒钟最大页面连接数。

Drupal页面缓存

Drupal有页面缓存机制,在数据库里面储存动态生成的页面。使用页面缓存机制,Drupal不用每次连接请求都生成页面一次。只有匿名用户(未登陆的 用户)请求的页面才会被缓存。一旦用户登陆,缓存机制就禁用了,因为不同用户的设置不同,页面的内容也不同。一些站点,例如本站(http://www.cmschina.org/),只有个别用户是注册用户,其余都是匿名用户。但是有一些站点也可能混合了为数不少的注册用户和匿名用户。生成测试结果的时候,我们对匿名用户和验证用户进行了区分,使你能够针对自己站点的情况更好的理解测试的结果。

使用APC?

APC,代表Alternative PHP Cache,是免费、开放的PHP扩展,通过缓存PHP中间代码,优化PHP应用程序性能。可以看到,启用APC之后,对匿名用户可以多承受4倍的连接请求,对验证用户连接数则多了2倍。

APC, no APC 比较

PHP4还是PHP5?

下面的图片描述了PHP4和PHP5的比较。可以看到,对匿名用户,PHP5比PHP4平均少处理13%的连接请求,对验证用户,少处理4%的请求。

PHP4及PHP5比较

反向代理?

当代理服务器譬如Squid配置为反向代理时,可以对页面 进行缓存,反向代理位于用户与web服务器中间,接受连接请求并提供缓存的内容,减少了web服务器以及数据库的负担。这次测试没有建立反向代理服务器, 因为当前Drupal没有生成用来控制缓存机制的正确HTTP文件头。并且,因为Drupal工作的方式,使得很难正确的配置一个反向代理服务器。假如全 部用户都是匿名用户,应该可以容易建立起可用的代理服务器。

mod_php还是FastCGI?

有许多方式可以运行PHP,mod_php和FastCGI是最常用到的两种。许多人采用mod_php,因为这是几乎所有Linux发行版的缺省方式。 这种情况下,PHP作为Apache的一个模块运行,因此PHP应用程序以Apache的权限运行,所以Drupal程序文件必须对Apache可读。

当使用FastCGI时,Web应用程序可以用不同的用户权限运行,因此,为了安全原因,虚拟主机通常使用FastCGI方式,可以避免系统上面的其他用户读写你的文件。但是不利的一面是,使用FastCGI会对性能造成一定的影响。
所以在这两者方式的选择上,你必须衡量性能和安全的轻重,作出一些妥协。下面的图片展示了两种方式的性能表现。当从mod_php切换到FastCGI时,对于匿名访问者性能降低了63%,对于验证用户则有18%性能降低。

Apache还是Lighttpd?

Lighttpd (也称Lighty),用于高性能要求的HTTP守护进程,以快速以及低内存占用为设计目标。下面的图表展示了Apache对Lighttpd的表现比较。

结论

通过以上的测试,什么样的配置环境表现最佳,什么样的配置环境表现最差呢?在考虑安全因素的情况下,什么样的配置速度最快呢?我们有了结论,最慢的配置是 不带APC的PHP5以Apache2的模块方式运行。不幸的是,这是最常见的配置。采用更安全的FastCGI模式下,最快的配置是Lighttpd加 PHP4以FastCGI方式运行,并带APC支持。对匿名用户来说,后者的速度几乎是前者的4倍,还更加安全。可以从下面的图表看出来。

web服务器配置比较

假如你不是采用虚拟主机,不关心FastCGI带来的安全因素,下一张图表,也是最后一张你可能会感兴趣。可以看到,对匿名用户,使用Apache的最快配置比使用Lighttpd的最快配置大约快3%。

web服务器配置比较

来源:http://buytaert.net/

2008年12月26日 | 归档于 LAMP主机
本文目前尚无任何评论.

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>