1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
Problme des connexions simultanes avec un backend
Pour chaque serveur, 3 cas possibles :
- pas de limite (par dfaut)
- limite statique (maxconn)
- limite dynamique (maxconn/(ratio de px->conn), avec minconn)
On a donc besoin d'une limite sur le proxy dans le cas de la limite
dynamique, afin de fixer un seuil et un ratio. Ce qui compte, c'est
le point aprs lequel on passe d'un rgime linaire un rgime
satur.
On a donc 3 phases :
- rgime minimal (0..srv->minconn)
- rgime linaire (srv->minconn..srv->maxconn)
- rgime satur (srv->maxconn..)
Le minconn pourrait aussi ressortir du serveur ?
En pratique, on veut :
- un max par serveur
- un seuil global auquel les serveurs appliquent le max
- un seuil minimal en-dessous duquel le nb de conn est
maintenu. Cette limite a un sens par serveur (jamais moins de X conns)
mais aussi en global (pas la peine de faire du dynamique en dessous de
X conns rpartir). La difficult en global, c'est de savoir comment
on calcule le nombre min associ chaque serveur, vu que c'est un ratio
dfini partir du max.
Ca revient peu prs la mme chose que de faire 2 tats :
- rgime linaire avec un offset (srv->minconn..srv->maxconn)
- rgime satur (srv->maxconn..)
Sauf que dans ce cas, le min et le max sont bien par serveur, et le seuil est
global et correspond la limite de connexions au-del de laquel on veut
tourner plein rgime sur l'ensemble des serveurs. On peut donc parler de
passage en mode "full", "saturated", "optimal". On peut galement parler de
la fin de la partie "scalable", "dynamique".
=> fullconn 1000 par exemple ?
|