Mysql
HAProxy 的 MySQL 連接氾濫
我設置了 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,也不能有這麼多並發連接。請讓我知道我需要尋找什麼來調整它,或者只是接受這是 HA 設置的正常行為。
這是我的 mariaDB 機器上的規範:
Ubuntu 12.04 8GB RAM 4 vCPU(每個節點都在 VMware 中執行)
如果您需要 /etc/mysql/my.cnf 文件,請告訴我,或 /etc/haproxy/haproxy.cnf 文件。對不起,如果我的文章看起來格式很糟糕,不知道如何讓這個看起來像你們其他人一樣乾淨整潔。
Haproxy 會執行“心跳”以確保服務實際上已啟動。這些可能非常頻繁,應該確保快速故障轉移。
所有這些連接都處於一種
TIME_WAIT
狀態,因此它們已經關閉並等待作業系統清理。他們沒什麼好擔心的。