为什么FastCGI快?

时间:2011-06-30 18:52:06

标签: perl fastcgi

  

FastCGI提供了一种改进方法   表现成千上万的Perl   已编写的应用程序   为了网络。 - Source

它是如何做到的?

3 个答案:

答案 0 :(得分:10)

标记R.布朗的whitepaper on the subject声称的FastCGI的的主要好处之一是,不同的请求可以共享单个高速缓存,使得缓存实用:

  

当今部署最广泛的Web服务器API基于进程池服务器模型。 Web服务器由父进程和子进程池组成。进程不共享内存。传入请求随机分配给空闲子节点。在接受新请求之前,子项运行请求完成。典型的服务器有32个子进程,大型服务器有100或200个。

     

内存缓存在此服务器模型中的效果非常差,因为进程不共享内存,并且传入的请求随机分配给进程。例如,为了在内存中保留一个经常使用的文件,服务器必须为每个子项保留一个文件副本,这会浪费内存。修改文件后,需要通知所有子项,这很复杂(API不提供这样做的方法)。

     

FastCGI旨在实现有效的内存缓存。请求从任何子进程路由到FastCGI应用程序服务器。 FastCGI应用程序进程维护一个内存缓存。

答案 1 :(得分:8)

  

“而不是为...创建新流程   每个请求,FastCGI使用持久性   处理一系列的过程   要求。这些流程归自己所有   FastCGI服务器,而不是网络   服务器“。

- Wikipedia

答案 2 :(得分:4)

它重用了池中的进程,而不是为每个请求生成一个新进程。