2008-12-20 6 views
14

Je suis en train de développer une application web en Perl avec du C comme nécessaire pour certains gros travaux. Le principal problème que j'ai jusqu'ici est d'essayer de décider si je devrais utiliser mod-perl, mod-fastcgi ou les deux pour exécuter mes scripts parce que j'ai du mal à essayer d'analyser les avantages et les inconvénients de chaque mod.mod_perl vs mod_fastcgi

Quelqu'un peut-il poster un résumé ou donner un lien où je peux trouver des informations de comparaison et peut-être quelques recommandations avec des exemples?

Répondre

22

Ce sont des bêtes assez différentes. (Au fait, mod_fcgid est recommandé) prend simplement en charge le protocole FCGI pour exécuter les CGI plus rapidement avec certains boutons pour contrôler le nombre de processus qui seront exécutés simultanément et pas beaucoup plus. D'autre part, mod_perl est une plate-forme pour le développement d'applications qui vous expose la plupart des internes Apache afin que vous puissiez ajuster chaque bouton du serveur web à partir de votre code, accélérer les CGI, et much more. Si tout ce que vous souhaitez est d'exécuter vos CGI rapidement, et que vous voulez soutenir autant d'hôtes que possible, vous devriez soutenir ces deux manières d'exécuter votre code et probablement CGI standard aussi bien.

Si vous vous souciez de l'efficacité maximale au détriment de la flexibilité, vous pouvez viser une seule plate-forme, probablement mod_perl.

Mais l'option la plus sûre est probablement de s'exécuter partout et d'utiliser un framework pour construire l'application qui prendra en compte les avantages d'une façon particulière d'exécution si elle est présente, comme Catalyst.

+0

Il semble que le framework [Catalyst] (http://www.catalystframework.org/) ait été déplacé. –

+0

y a-t-il des repères de vitesse entre les deux? – Hawken

7

Je vous conseille d'utiliser un cadre tel que Catalyst qui prend soin de ces détails. Pour la plupart des applications, peu importe comment le programme se connecte au serveur Web, à condition que cela soit fait de manière efficace. Le choix entre mod_perl et FastCGI devrait être fait par l'administrateur système qui le déploie, pas par le développeur.

+7

Je ne suis pas d'accord que cela devrait être le travail de l'administrateur système. Si vous le programmeur voulez avoir accès aux internes Apache pour donner à votre produit un avantage qui est votre décision, pas l'administrateur de la machine. J'espère que votre organisation est configurée pour que les administrateurs système supportent le produit, et non l'inverse. – mpeters

+0

Si votre application est le cœur de votre entreprise, alors je suis d'accord, mais dans de nombreux cas ce n'est pas le cas et vous avez à faire avec l'infrastructure existante. –

+5

Ceci est une approbation de produit plus d'une réponse. Vous ne répondez pas à la question de savoir comment fastcgi et mod_perl se comparent. – Hawken

4

Voici un site avec des comparaisons de performances réelles de mod_perl, mod_fastcgi, cgi (Perl) et un servlet Java - pour un script très simple: https://sites.google.com/site/arjunwebworld/Home/programming/apache-jmeter

En résumé:

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. 

Il est un ancien thread sur PerlMonks comparant mod_perl et fastcgi ici: http://www.perlmonks.org/?node_id=108008

Questions connexes