dockerbuild设内存不足,但似乎有足够的内存可用
我正在使用docker容器来构buildelixir / phoenix应用程序。 这已经工作了一段时间了,但最近它停止工作,错误总是与缺乏记忆有关。
例如,最频繁的故障点是在Elixir(Dockerfile中最繁重的任务)的mix compile
任务期间,崩溃的错误:
eheap_alloc: Cannot allocate 147852528 bytes of memory (of type "old_heap"). Crash dump is being written to: erl_crash.dump...done
有时它可能能够完成这一步,但是在后面的步骤中会再次失败,如编译前端代码的brunch build
。 有时候,在其他一些步骤没有具体的错误信息,只是说:
Killed
当发生这种情况时,我可以轻松地检查htop
,看到我使用的是htop
或4GB的RAM,总计16GB,所以完全没有物理RAM。
经过一番挖掘,我发现, sudo sysctl vm.overcommit_memory=1
可以帮助,但没有运气那里。
我的另一台运行Arch Linux的计算机运行得很好,而这台计算机运行Ubuntu 16.04