vendredi 8 novembre 2013

MaxClients, Max BusyWorkers


"Quand on arrête un noeud sur les trois, 
on a le nombre de sessions des autres noeuds qui passe de 800 à 2000, 
au lieu de 800+400=1200, pourquoi ?"




 apache reçoit R requêtes par secondes (ici : 1600)

une requête met un temps moyen T pour s'exécuter (ici: 500ms)


on a donc besoin de RT temps de process,
il y aura W=RT workers occupés pendant une seconde,

ici 1600*0.5=800 workers ,
ici, un worker peut exécuter deux requêtes pendant sa seconde de process.

coté backend on voit 800 workers, donc 800 sessions.




ça c'est quand tout va bien.




Mais quand il y a de la charge, on suppose que le temps moyen de traitement s'allonge,

soit à cause d'apache soit à cause du backend ,
quand il est supérieur à une seconde, T>1 RT=W>R, il y a plus de workers que de requêtes ;
il n'est donc pas incohérent d'autoriser un plus grand nombre de maxworkers que maxclients
pourvu que le backend arrive à suivre (et le système, mémoire, sockets etc aussi)

c'est peut être pour ça qu'on voit lors d'arrêt d'un noeud le nombre de sessions augmenter,
il ne s'agit peut être pas de sessions web (R), mais de sessions du backend (W),  (*à vérifier*)
au lieu d'avoir nos 3*800/2=2400/2=1200 sessions on en voit 2000
ce qui signifierait  une augmentation de 2000/1200=+66% du temps moyen T

  Bon, le raisonnement se tient, mais reste à voir si ça colle bien à la réalité.

Aucun commentaire: