mod_perl vs mod_fastcgi
apache mod-perl (3)
Estoy desarrollando una aplicación web en Perl con algo de C, según sea necesario para algunos números crujientes. El problema principal que estoy teniendo hasta ahora es tratar de decidir si debo usar mod-perl, mod-fastcgi o ambos para ejecutar mis scripts porque estoy teniendo dificultades para analizar los pros y los contras de cada mod.
¿Alguien puede publicar un resumen o dar un enlace donde pueda encontrar información de comparación y tal vez algunas recomendaciones con ejemplos?
Le aconsejo que use un marco como Catalyst que se encargue de tales detalles. Para la mayoría de las aplicaciones, no importa cómo se conecta el programa al servidor web, siempre que se realice de forma eficiente. La elección entre mod_perl y FastCGI debe hacerla el administrador del sistema que la implementa, no el desarrollador.
Son bestias bastante diferentes.
mod_fastcgi (por cierto, se recomienda mod_fcgid ) solo admite el protocolo FCGI para ejecutar CGIs más rápido con algunos controles para controlar cuántos procesos se ejecutarán simultáneamente y no mucho más.
mod_perl, por otro lado, es una plataforma para el desarrollo de aplicaciones que expone la mayor parte de las aplicaciones internas de Apache para que pueda ajustar cada perilla del servidor web de su código, acelerar los CGI y mucho más .
Si todo lo que desea es ejecutar sus CGI rápidamente, y desea admitir tantos hosts como sea posible, debe seguir apoyando esas dos formas de ejecutar su código y probablemente también CGI estándar.
Si le preocupa la máxima eficiencia a costa de la flexibilidad, podría aspirar a una única plataforma, probablemente mod_perl.
Pero probablemente la opción más segura es ejecutar en todas partes y utilizar un marco para construir la aplicación que se ocupará de utilizar las ventajas de una forma particular de ejecución, si está presente, como Catalyst .
Aquí hay un sitio con algunas comparaciones de rendimiento real de mod_perl, mod_fastcgi, cgi (Perl) y un servlet de Java, para un script muy básico: https://sites.google.com/site/arjunwebworld/Home/programming/apache-jmeter
En resumen:
cgi - 1200+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::PerlRun only)
fast_cgi - 6000+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::Registry)
servlets - 2438 requests per minute.
Hay un hilo viejo en PerlMonks que compara mod_perl y fastcgi aquí: http://www.perlmonks.org/?node_id=108008