因此,我们的服务器上运行着大量脚本,这些脚本会定期打开 mysql 连接,并且我们通常会在使用完毕后立即关闭这些连接。
然而,最近我们发现连接数激增(超过 8000),导致我们的服务器崩溃。中断仅持续几秒钟,但它使一大堆依赖功能陷入混乱,虽然可以管理,但显然是不可取的。
我的猜测是某个地方正在运行一个脚本,导致连接以某种循环打开,可能是 cron。
问题是我似乎无法找到发生这种情况的模式,并且我无法捕获连接占用的端口,因为服务器在连接开始打开后几毫秒内崩溃。
我正在寻找一些策略或方法来识别这些连接突然来自何处。
答案1
您可以使用 tcpdump 捕获流量、存储它并在稍后进行分析。
tcpdump -s 0 -i eth0 port 3306 -w capture.pcap
禁止 MySQL 流量并只让授权的客户端通过可能是个好主意。