docker fork/exec /proc/self/exe:无法分配内存

docker fork/exec /proc/self/exe:无法分配内存

几天后,docker 失败并出现错误

docker[8927]: level=error msg="Error running exec in container: execcantrun: Cannot run exec command 34a26 in container 4972e576: [8] System error: fork/exec /proc/self/exe: cannot allocate memory\n" 

Docker 1.9.1(无法升级)

USER       PID %CPU %MEM    VSZ     RSS    TTY      STAT START   TIME COMMAND 
root         34763  9.3    0.8    10680004   535208   ?      Ssl  Mar13 1334:17 /usr/bin/docker daemon -H fd:// --insecure-registry=0.0.0.0/0 --log-level=warn --ip-forward=false  

看到VSZ差不多10G了

自由-m

             total       used       free     shared    buffers     cached 
Mem:         63012      60128       2883        816          1       6775 
-/+ buffers/cache:      53351       9660 
Swap:         8191       7581        610  

如果我重新启动 docker 服务,问题就会消失,直到几天后再次出现。

docker重启后,VSZ在2G左右

root      27144  2.4  0.0 1786272 44432 ?       Ssl  17:44   4:47 /usr/bin/docker daemon -H fd:// --insecure-registry=0.0.0.0/0 --log-level=warn --ip-forward=false  

有人看过或者有建议吗?

答案1

该问题涉及到https://github.com/docker/docker/issues/8539在 docker 1.10 或更高版本中已解决。 docker log 驱动程序存在一些问题,导致专门用于刷新容器的 STDOUT 的缓冲区问题。

相关内容