mirror of
				https://git.haproxy.org/git/haproxy.git/
				synced 2025-10-29 23:51:01 +01:00 
			
		
		
		
	Those documentations provide nothing to users nor contributors but at least now I know where they are.
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Problème des connexions simultané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ès lequel on passe d'un régime linéaire à un régime
 | |
| saturé.
 | |
| 
 | |
| On a donc 3 phases :
 | |
| 
 | |
|   - régime minimal  (0..srv->minconn)
 | |
|   - régime linéaire (srv->minconn..srv->maxconn)
 | |
|   - régime 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 à répartir). La difficulté en global, c'est de savoir comment
 | |
|     on calcule le nombre min associé à chaque serveur, vu que c'est un ratio
 | |
|     défini à partir du max.
 | |
| 
 | |
| Ca revient à peu près à la même chose que de faire 2 états :
 | |
| 
 | |
|   - régime linéaire avec un offset (srv->minconn..srv->maxconn)
 | |
|   - régime 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 régime 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 ?
 | |
| 
 | |
| 
 |