* = turkcache doesn't support caching of the PHP scripts in CGI mode
上面的结果我觉得需要关注的是无cache的情况,因为使用mod_php或fastcgi主要还是用来生成动态页面。前面的cache有更好的工具来实现,如squid。所以,这个结果也是fastcgi胜出,相差也不大。
3 http://buytaert.net/drupal-performance?page=1
这个文章的结果和上面两个刚好相反。使用fastcgi代替mod_php后,”When switching from
to
we observe a 63% slowdown for anonymous visitors, and a 18% slowdown for authenticated visitors.”以下是图表
另外,benchmark中也做了和lightty的比较,如下图:
这个文章的结论是Apache+mod_php性能好于Apache+fastcgi。另外,Apache+mod_php略好于lightty+fastcgi。
4 最后看看 fastcgi官方自己怎么说的吧
Of course, the answer is that it depends upon the application. A more complete answer is that FastCGI often wins by a significant margin, and seldom loses by very much.
5 结论是,还是根据自己的应用测一下吧….
最后,个人观点
如果mod_php和fastcgi的性能相差不是很大的话,还是倾向于fastcgi的,这种方式毕竟更灵活、安全和简单。
1 使用fastcgi,你的web server 可以比较简单的切换,可以测试不同的服务器,Apache,lightty,ngix 等等,不需要有代码的修改
2 如果想换脚本的实现,如不用php,而是改成perl,python之类的,web服务器也不需要任何的改动
3 web server和fastcgi可以用不同的帐号运行,带来了一定的安全隔离
4 只在Apache中编个mod_fastcgi可以说是简单多了,把mod_php编进apache时,出问题时很难定位是php的问题还是apache的问题,我就见过这样的core,函数调用几十层,一点头绪都没有