Hi,
Sinds kort heb ik MySQL in een master-master opstelling. Tussen de webservers en de mysql servers heb ik HAProxy draaien.
HAProxy draait op twee virtuele servers: lb1 en lb2 en handelt dus http-verkeer en tcp-only verkeer (MySQL) af.
Tijdens het testen kwam dit probleem niet zozeer naar boven, maar nu twee servers gebruik maken van MySQL via de HAProxy merk ik dat de latency bij het laden van semi-grote websites of wordpress sites erg hoog is. Het is Klik - wachten - wachten - klaar met laden.
Als ik dan de DB-host verander naar één van de mysql servers (dus direct praten met mysql1 bijv.) dan is het klik - klaar met laden. Bijna instant dus.
Hierbij een overzicht
- webserver (sites, localhost gaat d.m.v. socat naar mysql.[domain].[ext])
- mysql 1
- mysql2
- lb1 (haproxy)
- lb2 (haproxy)
De loadbalancers draaien op een virtuele server met 1x2.6 Ghz processor.
mysql.[domain] is gebind op het virtuele ip-adres tussen de HAProxy servers. De specifieke config voor deze binding is als volgt:
Ik heb ook enkele aanpassingen gedaan in /etc/sysctl.conf op de loadbalancers - en gedeeltelijk ook op de webserver.Code:global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 40000 # debug # quiet user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 40000 timeout client 60000ms timeout server 60000ms frontend ao-mysql-frontend bind *:3306 default_backend ao-mysql-backend mode tcp option tcpka option tcp-smart-accept option tcplog balance roundrobin backend ao-mysql-backend mode tcp option tcpka option tcp-smart-connect # no option tcp-smart-accept balance roundrobin option mysql-check user haproxy_check server mysql1 [ip-mysql1]:3306 check source [ip lb1]:1025-65000 server mysql2 [ip-mysql2]:3306 check source [ip lb1]:1025-65000 backup
Het probleem met het lange laden blijft echter. Heeft iemand dezelfde ervaring en heeft het op de een of andere manier kunnen oplossen? Of heeft iemand de verlossende tip?Code:#HAProxy net.ipv4.ip_nonlocal_bind=1 net.ipv4.ip_forward=1 net.ipv4.ip_local_port_range = 1025 65000 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_max_syn_backlog = 40000 net.ipv4.tcp_max_tw_buckets = 400000 net.ipv4.tcp_max_orphans = 60000 net.ipv4.tcp_synack_retries = 3 net.core.somaxconn = 40000

Likes:


Quote