Je viens tout juste de devenir responsable d'un projet existant qui utilise des serveurs web Apache et des bases de données MySQL.
Les serveurs web sont derrière un équilibreur de charge HAProxy et l'application se connecte aux esclaves MySQL via un autre HAProxy.
2 des 10 serveurs web ont été récemment ajoutés et sont plus puissants que les anciens. De même pour les esclaves MySQL : 2 de ces 5 esclaves disposent de plus de RAM et de CPU.
L'algorithme d'équilibrage pour les serveurs Apache est leastconn et pour les esclaves est source. Au moins les paramètres des serveurs MySQL me semblent étranges car dans le pire des cas, le "meilleur" apache (avec le plus de poids) peut toujours choisir le pire serveur MySQL si je comprends bien la documentation HAProxy Docs. Je choisirais roundrobin avec des poids ajustés :
- 10 pour les trois serveurs MySQL normaux
- 20 pour les deux serveurs MySQL plus puissants
Et comme les apaches sont derrière le HAProxy avec un timeout de 20s, j'appliquerais plutôt roundrobin aussi.
- 10 pour les huit serveurs apache normaux
- 20 pour le serveur apache plus puissant
(Je n'utiliserais le 20 que pour commencer. Je vais surveiller la surveillance et ajusterai plus tard.)
Comme les serveurs sont en colocation (c'est-à-dire que je n'ai pas accès root, les demandes de changement prennent un certain temps), j'aimerais juste avoir un deuxième (ou plusieurs) avis sur ce sujet : est-ce une bonne idée de changer l'algorithme d'équilibrage pour les deux en roundrobin ? Je ne le considérerais pas s'il n'y avait eu récemment des problèmes de performance et c'est juste un endroit que je trouve intéressant à ajuster.
Merci pour vos conseils !
Cordialement dennis