haproxy/doc/internals/connection-scale.txt

45 lines
1.6 KiB
Plaintext
Raw Normal View History

Probl<EFBFBD>me des connexions simultan<61>es avec un backend
Pour chaque serveur, 3 cas possibles :
- pas de limite (par d<>faut)
- 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 apr<70>s lequel on passe d'un r<>gime lin<69>aire <20> un r<>gime
satur<EFBFBD>.
On a donc 3 phases :
- r<>gime minimal (0..srv->minconn)
- r<>gime lin<69>aire (srv->minconn..srv->maxconn)
- r<>gime satur<75> (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 <20> r<>partir). La difficult<6C> en global, c'est de savoir comment
on calcule le nombre min associ<63> <20> chaque serveur, vu que c'est un ratio
d<>fini <20> partir du max.
Ca revient <20> peu pr<70>s <20> la m<>me chose que de faire 2 <20>tats :
- r<>gime lin<69>aire avec un offset (srv->minconn..srv->maxconn)
- r<>gime satur<75> (srv->maxconn..)
Sauf que dans ce cas, le min et le max sont bien par serveur, et le seuil est
global et correspond <20> la limite de connexions au-del<65> de laquel on veut
tourner <20> plein r<>gime sur l'ensemble des serveurs. On peut donc parler de
passage en mode "full", "saturated", "optimal". On peut <20>galement parler de
la fin de la partie "scalable", "dynamique".
=> fullconn 1000 par exemple ?