无法关闭高负载docker mysql

时间:2016-10-27 16:18:38

标签: mysql linux bash docker shutdown

我有一个脚本,每隔3个secondes启动一个docker,直到有20个docker up。在那之后,当一个完成后,另一个码头将会启动。

在docker中,我启动了一个bash脚本,它将启动apache2,mysql和一个节点脚本。一段时间后,节点脚本结束,docker关闭。

但有时候(完全随机),docker将永远挂在那里而不是关机。我甚至无法通过docker stop或docker kill将其关闭。如果我尝试重新启动主机,主机将不会完全关闭。我检查了docker和docker的统计数据,只剩下几乎0%的cpu使用率。

尝试在bash脚本中手动关闭每个进程,我看到它是不会关闭的mysql。我尝试sudo服务mysql stop和sudo mysqladmin shutdown但都失败了。

做一个docker top,我可以看到剩下的唯一进程是当前的

的mysql

如果这可以提供帮助,我使用此命令启动docker运行--rm test01 / bin / bash /home/gps/entry_point.sh 5811fafb27517f523d1b96e5 http://10.1.5.41:8889 master

我的主持人和码头工人都是debian jessie,而且大多数时候它工作正常。

我不知道这是否与问题有关,但是当我在主机上执行dmesg时,我会收到大量的消息:

[ 4197.073458] docker0: port 7(veth27ee643) entered disabled state
[ 4197.764473] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4197.809072] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4197.855061] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4197.856599] device veth0ef0a9b entered promiscuous mode
[ 4197.857560] IPv6: ADDRCONF(NETDEV_UP): veth0ef0a9b: link is not ready
[ 4197.858392] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4197.859215] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4198.019272] docker0: port 7(veth0ef0a9b) entered disabled state
[ 4198.119297] IPv6: ADDRCONF(NETDEV_CHANGE): veth0ef0a9b: link becomes ready
[ 4198.120103] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4198.120873] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4213.166227] docker0: port 7(veth0ef0a9b) entered forwarding state
[ 4523.921860] docker0: port 3(veth65e0351) entered disabled state
[ 4523.973714] docker0: port 3(veth65e0351) entered disabled state
[ 4523.974654] device veth65e0351 left promiscuous mode
[ 4523.975105] docker0: port 3(veth65e0351) entered disabled state
[ 4525.079938] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4525.136297] aufs au_opts_verify:1570:dockerd[533]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4525.196855] aufs au_opts_verify:1570:dockerd[801]: dirperm1 breaks the protection by the permission bits on the lower branch
[ 4525.219241] device veth1658809 entered promiscuous mode
[ 4525.219777] IPv6: ADDRCONF(NETDEV_UP): veth1658809: link is not ready
[ 4525.220241] docker0: port 3(veth1658809) entered forwarding state
[ 4525.220720] docker0: port 3(veth1658809) entered forwarding state
[ 4525.221500] docker0: port 3(veth1658809) entered disabled state
[ 4525.494605] IPv6: ADDRCONF(NETDEV_CHANGE): veth1658809: link becomes ready
[ 4525.495218] docker0: port 3(veth1658809) entered forwarding state
[ 4525.495727] docker0: port 3(veth1658809) entered forwarding state
[ 4540.549216] docker0: port 3(veth1658809) entered forwarding state

关于什么可能导致这个问题的任何想法?

编辑:不确定这是否有帮助,但是做sudo journalctl -fu docker.service我得到了日志

Oct 27 09:03:32 Server1 dockerd[475]: time="2016-10-27T09:03:32.882004522-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:03:39 Server1 dockerd[475]: time="2016-10-27T09:03:39.56717629-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:03:45 Server1 dockerd[475]: time="2016-10-27T09:03:45.348335753-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:03:52 Server1 dockerd[475]: time="2016-10-27T09:03:52.016592953-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:05:12 Server1 dockerd[475]: time="2016-10-27T09:05:12.142848267-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:15:35 Server1 dockerd[475]: time="2016-10-27T09:15:35.175607108-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:23:50 Server1 dockerd[475]: time="2016-10-27T09:23:50.428877153-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:26:29 Server1 dockerd[475]: time="2016-10-27T09:26:29.223240463-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 09:31:56 Server1 dockerd[475]: time="2016-10-27T09:31:56.446979648-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"
Oct 27 10:37:18 Server1 dockerd[475]: time="2016-10-27T10:37:18.81258037-04:00" level=error msg="containerd: notify OOM events" error="cgroup path for memory not found"

1 个答案:

答案 0 :(得分:0)

请试试这个:

sudo chgrp mysql /etc/mysql/debian.cnf; sudo chmod 640 /etc/mysql/debian.cnf
nano /etc/systemd/system/mysql.service
[service]
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
sudo chmod 755 /etc/systemd/system/mysql.service
sudo systemctl daemon-reload