У меня есть установка из 2 серверов HAProxy, использующих процесс KeepAlived для аварийного переключения, и каждый HAProxy настроен для балансировки нагрузки соединений MySQL с моим кластером MariaDB Galera из 3 узлов. Я пытаюсь выполнить нагрузочный тест в своей среде, и прежде чем я даже отправлю трафик на один из моих узлов, я просматриваю netstat -an | grep 3306, и вот что я вижу на своем первом узле:
ubuntu@mariadb1:~$ netstat -an |grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 10.60.61.21:3306 10.60.61.19:44563 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44521 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44536 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58622 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58637 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58649 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44533 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44557 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58616 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58628 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58619 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58646 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58625 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58631 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44551 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58652 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44524 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58658 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44545 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58655 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58640 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58634 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44539 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44554 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44527 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58661 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44518 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44548 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44560 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.19:44530 TIME_WAIT
tcp 0 0 10.60.61.21:3306 10.60.61.20:58643 TIME_WAIT
Я хочу знать, почему HAProxy заполняют соединения на 3306 еще до того, как я сгенерировал какой-либо трафик. Я бы подумал, что первичный HAProxy должен иметь хотя бы одно работающее соединение, чтобы он мог передавать трафик, но не оба HAProxy одновременно, и не с таким количеством одновременных соединений. Пожалуйста, дайте мне знать, что мне нужно искать, чтобы настроить это, или просто согласитесь, что это нормальное поведение для настройки высокой доступности.
Вот спецификации моих машин mariaDB:
Ubuntu 12.04 8 ГБ ОЗУ 4 виртуальных ЦП (каждый узел работает в VMware)
Если вам нужен файл /etc/mysql/my.cnf, сообщите мне, или файл /etc/haproxy/haproxy.cnf. Извините, если мой пост кажется ужасно отформатированным, я не знаю, как сделать так, чтобы он выглядел красиво и чисто, как и все остальные.
Haproxy делает "сердцебиение", чтобы убедиться, что служба действительно работает. Они могут происходить довольно часто и должны обеспечивать быстрое переключение при отказе.
Все эти связи находятся в TIME_WAIT
состояние, так что они уже закрыты и ждут очистки ОС. Им не о чем беспокоиться.