2011-06-30 33 views
6

FastCGI proporciona una manera de mejorar el rendimiento de las miles de aplicaciones Perl que se han escrito para la Web. - Source¿Por qué FastCGI es rápido?

y cómo lo hace?

+4

No estoy seguro de que estoy de acuerdo con los votos "no es una pregunta real". Me parece lo suficientemente razonable. – Flexo

+1

Parece como si la respuesta estuviera a solo dos clics de distancia ..... http://www.fastcgi.com/drupal/node/6?q=node/16 –

+2

@awoodland De acuerdo. La pregunta podría usar una edición rápida, pero ciertamente es válida. @Jack Maney No tiene nada de malo tener la respuesta aquí, también. – WCWedin

Respuesta

10

Mark R. de Brown que uno de los principales beneficios de FastCGI es que las diferentes solicitudes pueden compartir una única caché, por lo que el almacenamiento en caché práctica:

de hoy más ampliamente Las API de servidor web implementadas se basan en un modelo de servidor de conjunto de procesos. El servidor web consiste en un proceso principal y un conjunto de procesos secundarios. Los procesos no comparten memoria. Una solicitud entrante se asigna a un niño inactivo al azar. El niño ejecuta la solicitud hasta que finaliza antes de aceptar una nueva solicitud. Un servidor típico tiene 32 procesos hijo, un servidor grande tiene 100 o 200.

El almacenamiento en memoria caché en memoria funciona muy mal en este modelo de servidor porque los procesos no comparten memoria y las solicitudes entrantes se asignan a los procesos al azar. Por ejemplo, para mantener un archivo de uso frecuente disponible en la memoria, el servidor debe mantener una copia de archivo por hijo, lo que desperdicia memoria. Cuando se modifica el archivo, todos los niños necesitan ser notificados, lo cual es complejo (las API no proporcionan una forma de hacerlo).

FastCGI está diseñado para permitir el almacenamiento en memoria caché eficaz en la memoria. Las solicitudes se enrutan desde cualquier proceso hijo a un servidor de aplicaciones FastCGI. El proceso de aplicación FastCGI mantiene un caché en memoria.

+0

Gracias WCWedin :) –

4

Reutiliza procesos de un grupo en lugar de generar uno nuevo para cada solicitud.

+4

Hay muchos efectos secundarios (positivos) de los procesos de reutilización: ¿tal vez podría dar más detalles? –

8

"En lugar de crear un nuevo proceso para cada solicitud, FastCGI utiliza persistentes procesos para manejar una serie de peticiones . Estos procesos son propiedad de el servidor FastCGI, no el servidor web ."

- Wikipedia

whitepaper on the subject reclamaciones
Cuestiones relacionadas