两个docker容器中的两个mysql(5.6.20)实例(1.8.32), master和slave相互建立半同步复制, 然后用户总是在master中运行一些dml或ddl。
十天或更长时间后,连接到slave的所有客户端都将挂起
gdb -p / strace slave mysqld进程挂起
pstack / perf top -p slave mysqld进程不显示任何内容
kill -9不会杀死mysqld进程
docker stop不会停止泊坞窗容器
哪些工具或方法可以帮助找到问题?
答案 0 :(得分:3)
我今天也一样。在我的例子中,使用docker中的当前“最新”mysql映像,使用docker compose来调出mysql和一系列消费者。 (5.7.16-1debian8)
我已经发布了其中的一些,并且在一周内我看到了几个mysql具有超过100个线程的实例,主机上的所有内存都被消耗,并且容器被挂起。我无法阻止任何事情,我甚至无法重启。只有VM的电源循环才会恢复。
我会尝试监控。我怀疑它在很大程度上取决于基础架构负载(缓慢的VM主机导致备份缓慢查询)。解决方案更可能是mysql调优和docker bug。