Open kagxin opened 5 years ago
linux 的 Systemd会对资源进行控制,TasksMax Systemd / Linux功能可能会导致与创建新进程相关的各种操作问题,包括启动容器的失败和设置运行容器的iptables规则的失败。 受此问题影响的客户将会出现Docker守护程序无法创建比TasksMax配置的限制更多的进程。
$ docker ps runtime/cgo: pthread_create failed: Resource temporarily unavailable runtime/cgo: pthread_create failed: Resource temporarily unavailable SIGABRT: abort PC=0x7fd204a43428 m=3 sigcode=18446744073709551610 goroutine 0 [idle]: runtime: unknown pc 0x7fd204a43428 stack: frame={sp:0x7fd204007998, fp:0x0} stack=[0x7fd2038082f0,0x7fd204007ef0) 00007fd204007898: 00007fd20541a5f8 0000000000000000 ... 00007fd2040078a8: 00007fd205426168 00007fd204007a08 runtime: unknown pc 0x7fd204a43428 stack: frame={sp:0x7fd204007998, fp:0x0} stack=[0x7fd2038082f0,0x7fd204007ef0) 00007fd204007898: 00007fd20541a5f8 0000000000000000 ... 00007fd2040078a8: 00007fd205426168 00007fd204007a08 goroutine 1 [chan receive, locked to thread]: runtime.gopark(0x1883d68, 0xc42008a058, 0x17d28c3, 0xc, 0xc420046e17, 0x3) /usr/local/go/src/runtime/proc.go:291 +0x11a runtime.goparkunlock(0xc42008a058, 0x17d28c3, 0xc, 0x17, 0x3) /usr/local/go/src/runtime/proc.go:297 +0x5e runtime.chanrecv(0xc42008a000, 0x0, 0x1, 0x41a4c8) /usr/local/go/src/runtime/chan.go:518 +0x2f2 runtime.chanrecv1(0xc42008a000, 0x0) /usr/local/go/src/runtime/chan.go:400 +0x2b runtime.gcenable() /usr/local/go/src/runtime/mgc.go:217 +0x6f runtime.main() /usr/local/go/src/runtime/proc.go:161 +0x11e runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 rax 0x0 ... gs 0x0
sudo systemctl cat docker
# Comment TasksMax if your systemd version does not supports it. # Only systemd 226 and above support this option. TasksMax=512
systemctl status docker | grep Tasks
Tasks: 469 (Limit: 512)
重新设置TasksMax (这里直接取了infintiy,取消限制)
sudo systemctl set-property docker.service TasksMax=infinity
重启systemd
systemctl daemon-reload
重启docker
systemctl restart docker
ref: docker issue Docker Success Center 给出的解决方案 pthread_create failed原因排查
原因分析
异常堆栈
解决办法重新设置TasksMax允许的最大值
重新设置TasksMax (这里直接取了infintiy,取消限制)
重启systemd
重启docker
ref: docker issue Docker Success Center 给出的解决方案 pthread_create failed原因排查