Algoritmi di equilibrio HAProxy per Apache e MySQL
appena di recente sono responsabile di un progetto esistente che utilizza i server web Apache ei database MySQL.
Il server web si trova dietro un loadbalancer HAProxy e l'applicazione si connette agli slave MySQL tramite un'altra HAProxy.
2 del 10 webserver sono stati aggiunti appena di recente e sono più potenti di quelli vecchi. Lo stesso per gli slave MySQL: 2 di questi 5 slave hanno più RAM e CPU.
L'algorithm di bilanciamento per i server Apache è less conn e per gli slave è fonte . Alless le impostazioni per i server MySQL sono strano perché nel peggiore dei casi l'apache "migliore" (con il maggior peso) può sempre scegliere il server MySQL peggiore se capisco i documenti di HAProxy . Vorrei scegliere il roundrobin con i pesi rettificati:
- 10 per i tre normali server MySQL
- 20 per i due server MySQL più forti
E perché gli apache sono dietro l'HAProxy con un timeout di 20 anni, preferirei anche applicare roundrobin .
- 10 per l'otto server Apache normale
- 20 per il server Apache più potente
(Vorrei usare i 20 solo per un inizio. Vado a vedere il monitoraggio e lo farò adattare più tardi.)
Poiché i server sono in colocation (come in: non ho accesso root, le richieste di modifica richiedono un po 'di tempo) vorrei solo avere un secondo (o più) opinione su questo argomento: è una buona idea cambiare il bilanciamento algorithm per entrambi a roundrobin ? Non vorrei considerare questo se non ci sono stati problemi di performance appena di recente e questo è solo un posto che mi trovo vale la pena modificare.
Grazie per qualsiasi / tuo consiglio!
Saluti dennis
One Solution collect form web for “Algoritmi di equilibrio HAProxy per Apache e MySQL”
source
è davvero una scelta strana, a less che i tuoi appserver non abbiano la persistenza di session con gli slave DB. Questo è per te per capire, però.
leastconn
è di solito una scelta molto buona se le performance di ciascun server (sia appserver che database) non sono assolutamente stabili. Ciò dipende dai dettagli della tua applicazione e della piattaforma. (Ad esempio, un appserver basato su Java può avere periodi di rallentamento a causa della raccolta di rifiuti, durante i quali è ragionevole diminuire il carico di bilanciamento.)
Infine, sì, con roundrobin
si otterrà solitamente un equilibrio molto prevedibile e stabile che aderisce strettamente ai pesi.