OVH Community, votre nouvel espace communautaire.

Configuration Haproxy balance source


starouille
20/06/2014, 15h09
Faut tester pour voir ce que ça donne avec des valeurs faibles et des benchs pour simuler les connexions si besoin.

Je pense que ça se met en queue mais à voir..


Idéalement faut passer par des cookies, y'a pas d'impact ensuite à être en round robin ou en source.

hawatools
20/06/2014, 14h17
C'est exactement ça, pour ne pas faire exploser les nodes web, je bride en connexion via haproxy

Math33
20/06/2014, 14h02
En effet tu sembles atteindre les limites de sessions. Le nombre de sessions correspond bien au trafic géré ? Si oui, si j'ai bien suivi, tu préfères limiter les sessions sur le LB pour éviter la saturation des nodes web, j'ai bon ?

hawatools
20/06/2014, 13h25
Merci pour votre réponse. Haproxy ne consomme pas beaucoup de ressource c'est vrais je parle ici des serveurs WEB et du mode SOURCE et non pas roundrobin. Bon après le roundrobin avec l'assignation d'un cookie reviens au même je pense.

J'ai pas mal d'erreur 503 dans les logs et je me demande si cela na proviens pas justement des limites des serveurs définie comme ceci.

server web01 10.10.0.10:80 maxconn 200 check inter 5000 cookie s01 maxqueue 10

Sur la page de stats j'ai pour un serveur X

Session
Cur Max Limit
200 200 200

A savoir si haproxy va du coup créer une queue, changer de serveur en settant un autre cookie ou bien provoquer une erreur 503...

J'arrive pas de mon coté à reproduire assez de trafic pour saturer une node et voir le comportement.

Merci

Math33
20/06/2014, 12h57
Bonjour,

HAProxy ne consomme pas grand chose, tout au plus de la RAM. Quel est le serveur sur lequel il est installé ? Un peu étonné de voir que tu es limité par celui-ci.

Concernant les sticky session, de mon côté je mets dans les options du bloc (entre autres, je mets juste ce qui nous intéresse) :
cookie SERVERID insert nocache indirect
server web1 10.1.0.1:80 cookie web1 check
server web2 10.1.0.2:80 cookie web2 check
server web3 10.1.0.3:80 cookie web3 check

(le "check" est couplé à l'option "httpchk" qui interroge un script particulier pour vérifier la santé du node web)

Avec la configuration ci-dessus, un client se verra attribuer un cookie SERVERID avec pour valeur webX selon le serveur web vers lequel la 1ère requête a été envoyé. Les prochaines requêtes du client passeront par le même node web.
Si un client se connecte juste après, il sera envoyé sur un autre node, ainsi de suite.

Après pour le mécanisme de répartition des connexions entre les modes, ça dépend de l'algo de LB (par défaut "roundrobin") et du poids attribué aux nodes. Dans mon cas je ne le définis par car les nodes web sont tous aussi puissants mais si tu veux le rajouter à chaque ligne déclarant le node ajoute :
weight X

X étant une valeur entière, plus la valeur est importante, plus le node web sera appelé (si web1 a un poids de 10 et web2 un poids de 20, ce dernier sera 2 fois + sollicité que web1).

En espérant t'avoir éclairé ^^

hawatools
20/06/2014, 12h25
Bonjour,

Je cherche à connaitre le mode de fonctionnement de haproxy en mode balance source avec une limitation de connexion maxconn.

En effet le mode source permet de garder une même IP sur un même serveur c'est très pratique pour le cache, session&co, seulement le serveur à une limite de connexion imposée par les performances de celui-ci.

Que ce passe t'il si une IP assignée à un serveur X génère trop de connexion ou bien si le serveur atteint son maxconnexion ? Est ce que le client reçoit une erreur 503 ou bien haproxy va rééquilibrer et renvoyer le requête sur un autre ?

SI vous avez une idée je suis preneur.

Merci