2008-12-26 13 views
5

J'utilise une application Django en utilisant FastCGI et lighttpd.Quelles sont les valeurs à utiliser pour les requêtes max de FastCGI, maxspare, minspare, maxchildren?

Quelqu'un peut-il me expliquer ce que je devrais considérer au moment de décider quelle valeur à utiliser pour maxrequests, maxspare, minspare, maxchildren?

Ces options ne sont pas trop bien documentés, mais semblent très importants.

Ne pas me dire ce qu'ils font; Je veux comprendre quelles implications ils ont et comment je devrais décider sur quelles valeurs utiliser.

Merci.

Répondre

13

Commençons par la définition

 
    maxrequests: How many requests does a child server before being killed 
       and a new one forked 
    maxspare : Maximum number of spare processes to keep running 
    minspare : Minimum number of spare processes to prefork 
    maxchildren: Hard limit number of processes in prefork mode 

Cela signifie que vous aurez dans la plupart des maxchildren processus en cours d'exécution à tout moment dans votre serveur Web, chaque course pour maxrequests demandes. Au démarrage du serveur, vous obtiendrez minspare processus, qui va continuer de croître jusqu'à maxspare (ou maxchildren) si plus de demandes sont à venir.

Ainsi, minspare vous permet de dire combien de demandes simultanées que vous attendez au minimum (important pour éviter la création de processus si vous commencez avec un, il est bon de commencer, disons 10), et maxspare permet vous indiquez le nombre de demandes simultanées auxquelles votre serveur doit répondre au maximum (sans compromettre le temps de réponse prévu, etc.). Et maxrequests parle de la vie de chaque enfant, au cas où ils ne peuvent pas courir pour toujours à cause de toute contrainte.

+0

Bonne explication. Pouvez-vous en dire plus sur maxrequests? C'est ma plus grande préoccupation. Pourquoi voudriez-vous qu'un processus fils meure après un certain nombre de demandes? Pour protéger d'éventuelles fuites de mémoire? – ibz

+0

Je ne peux pas parler pour tout le monde, même si avec Django et fastcgi nous avons vu beaucoup de problèmes de mémoire avec les processus fastcgi de longue durée. Définir une valeur raisonnable pour 'maxrequests' nous évite d'avoir à tuer manuellement de gros processus car ils ne sont pas assez longs pour que la fuite de mémoire fasse beaucoup de dégâts. –

+0

Alors, quelle est la différence entre maxchildren et maxspare? Ils me semblent redondants. –

-1

Ne pas oublier de coordonner vos paramètres FCGI avec vos paramètres de travail apache. Je garde généralement plus de travailleurs apache que de travailleurs de fcgi ... ils sont plus légers et attendent qu'un ouvrier de fcgi disponible libère pour traiter la requête si la concurrence atteint plus que ma maxspare.

+1

Lighttpd n'a pas de personnel Apache. – gw0

Questions connexes