Docker 守护程序内存不足,但主机上的内存可用



我一直在互联网上寻找这里和其他地方,但没有找到问题的答案。

情况是这样的。

我的系统内存不足:

System information as of Sat May 23 12:06:56 CEST 2020
System load:  0.02               Users logged in:                0
Usage of /:   72.8% of 38.71GB   IP address for ens3:            92.222.89.93
Memory usage: 12%                IP address for docker_gwbridge: 172.18.0.1
Swap usage:   0%                 IP address for docker0:         172.17.0.1
Processes:    126

我的 docker 守护程序没有显示任何问题:

top - 12:14:46 up 2 days, 22:11,  1 user,  load average: 37.87, 21.54, 26.91
Tasks: 187 total,   2 running, 140 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.8 us, 92.4 sy,  0.0 ni,  0.0 id,  6.5 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  3941032 total,   118616 free,  3720504 used,   101912 buff/cache
KiB Swap:        0 total,        0 free,        0 used.    14676 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                         
34 root      20   0       0      0      0 R 71.6  0.0  28:08.90 kswapd0                                                         
11405 root      20   0  117504   3920      0 S  0.9  0.1   0:00.32 caddy                                                           
1005 root      20   0  934736  61288      0 S  0.7  1.6  19:09.86 dockerd                                                         

但是当我调用 docker 命令时出现out of memory错误:

# docker ps
fatal error: runtime: out of memory
runtime stack:
runtime.throw(0x55d00d234abc, 0x16)
/usr/local/go/src/runtime/panic.go:617 +0x74 fp=0x7ffc081913c0 sp=0x7ffc08191390 pc=0x55d00bc58574
runtime.sysMap(0xc000000000, 0x4000000, 0x55d00f1ddf98)
/usr/local/go/src/runtime/mem_linux.go:170 +0xc9 fp=0x7ffc08191400 sp=0x7ffc081913c0 pc=0x55d00bc43889
runtime.(*mheap).sysAlloc(0x55d00f1c4a80, 0x2000, 0x55d00f1c4a90, 0x1)
/usr/local/go/src/runtime/malloc.go:633 +0x1cf fp=0x7ffc081914a8 sp=0x7ffc08191400 pc=0x55d00bc3669f
runtime.(*mheap).grow(0x55d00f1c4a80, 0x1, 0x0)
/usr/local/go/src/runtime/mheap.go:1222 +0x44 fp=0x7ffc08191500 sp=0x7ffc081914a8 pc=0x55d00bc50c94
runtime.(*mheap).allocSpanLocked(0x55d00f1c4a80, 0x1, 0x55d00f1ddfa8, 0x0)
/usr/local/go/src/runtime/mheap.go:1150 +0x381 fp=0x7ffc08191538 sp=0x7ffc08191500 pc=0x55d00bc50b81
runtime.(*mheap).alloc_m(0x55d00f1c4a80, 0x1, 0x2a, 0x6e43a318)
/usr/local/go/src/runtime/mheap.go:977 +0xc6 fp=0x7ffc08191588 sp=0x7ffc08191538 pc=0x55d00bc501d6
runtime.(*mheap).alloc.func1()
/usr/local/go/src/runtime/mheap.go:1048 +0x4e fp=0x7ffc081915c0 sp=0x7ffc08191588 pc=0x55d00bc812fe
runtime.(*mheap).alloc(0x55d00f1c4a80, 0x1, 0x55d00b01002a, 0x7ffc08191660)
/usr/local/go/src/runtime/mheap.go:1047 +0x8c fp=0x7ffc08191610 sp=0x7ffc081915c0 pc=0x55d00bc504ac
runtime.(*mcentral).grow(0x55d00f1c5880, 0x0)
/usr/local/go/src/runtime/mcentral.go:256 +0x97 fp=0x7ffc08191658 sp=0x7ffc08191610 pc=0x55d00bc43307
runtime.(*mcentral).cacheSpan(0x55d00f1c5880, 0x7ff733676000)
/usr/local/go/src/runtime/mcentral.go:106 +0x301 fp=0x7ffc081916b8 sp=0x7ffc08191658 pc=0x55d00bc42e11
runtime.(*mcache).refill(0x7ff733676008, 0x2a)
/usr/local/go/src/runtime/mcache.go:135 +0x88 fp=0x7ffc081916d8 sp=0x7ffc081916b8 pc=0x55d00bc428a8
runtime.(*mcache).nextFree(0x7ff733676008, 0x55d00f1ba92a, 0x7ff733676008, 0x7ff733676000, 0x8)
/usr/local/go/src/runtime/malloc.go:786 +0x8a fp=0x7ffc08191710 sp=0x7ffc081916d8 pc=0x55d00bc36eda
runtime.mallocgc(0x180, 0x55d00df28480, 0x1, 0x55d00f1de000)
/usr/local/go/src/runtime/malloc.go:939 +0x780 fp=0x7ffc081917b0 sp=0x7ffc08191710 pc=0x55d00bc37810
runtime.newobject(0x55d00df28480, 0x4000)
/usr/local/go/src/runtime/malloc.go:1068 +0x3a fp=0x7ffc081917e0 sp=0x7ffc081917b0 pc=0x55d00bc37c1a
runtime.malg(0x22b1800008000, 0x55d00f1c70f0)
/usr/local/go/src/runtime/proc.go:3220 +0x33 fp=0x7ffc08191820 sp=0x7ffc081917e0 pc=0x55d00bc61a23
runtime.mpreinit(...)
/usr/local/go/src/runtime/os_linux.go:311
runtime.mcommoninit(0x55d00f1bed40)
/usr/local/go/src/runtime/proc.go:618 +0xc6 fp=0x7ffc08191858 sp=0x7ffc08191820 pc=0x55d00bc5b396
runtime.schedinit()
/usr/local/go/src/runtime/proc.go:540 +0x78 fp=0x7ffc081918b0 sp=0x7ffc08191858 pc=0x55d00bc5b028
runtime.rt0_go(0x7ffc081919b8, 0x2, 0x7ffc081919b8, 0x0, 0x7ff732ca9b97, 0x2, 0x7ffc081919b8, 0x200008000, 0x55d00bc83370, 0x0, ...)
/usr/local/go/src/runtime/asm_amd64.s:195 +0x11e fp=0x7ffc081918b8 sp=0x7ffc081918b0 pc=0x55d00bc8349e

欢迎任何建议,尽管我不确定是否能够重现该问题

按照 Manko @John的建议对其中一个容器设置内存限制后,问题不再出现。似乎这解决了我的问题。

相关内容

最新更新