我创建了JHipster项目,并试图在linux机器上执行它。所有的容器都被创建的很好,我可以使用"docker ps“查看它们,并使用"docker stats”查看使用情况。
但是,内存一直在不断增加..最终,我的笔记本电脑(核心i5,10 i5内存)停止响应并死机!
我尝试在docker_compose.yml上的每个服务定义上使用mem_limit,我可以看到限制在docker统计数据上起作用……然而,内存一直在上升,当容器的使用率超过95%时,它就会死掉……容器停止工作并被移除。所以..。此设置只是防止我的电脑死机..但别无他法。
我还尝试了在docker_compose.yml中设置-Xmx的ENV JAVA_OPTS和其他内存参数...但结果是一样的。
注册表、网关、业务微服务和UAA至少需要1.5 to才能不死并能够启动,其他镜像/容器(mysql、elasticsearch等)可以使用512m。然而,有4x1.5 my和几个512mb占用了我所有的内存。JHipster注册表应该可以使用512MB。我在Heroku上设置了一个512mb的注册表,它可以正常工作。
我运行的是基础操作系统(基于ubuntu14.04),64位,Kernel3.19.0-59-generic,Java1.8,Docker version1.11.2build b9f10c9,我在grub上为内存做了cgroup配置(来自docker安装指南)。以下是cat /proc/cgroups的输出:
#subsys_name hierarchy num_cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 7 1 devices 5 4 1 freezer 6 4 1 net_cls 7 4 1 blkio 8 4 1 perf_event 9 4 1 net_prio 10 4 1 hugetlb 11 4 1
还有一件事..我尝试了这个repo https://github.com/kbastani/spring-cloud-microservice-example中的项目,也遇到了完全相同的问题。内存会不断增加。
我希望你能在这方面提供帮助。
谢谢!
发布于 2016-06-29 11:43:48
容器需要更多的内存,限制它们可以拥有的内存并不会改变这一点。
当内存变得过高(95%)时,Linux OOM杀手就会介入,将系统从厄运中拯救出来(参见OOM Killer)
TL;DR运行较少的容器或获得更多内存。
https://stackoverflow.com/questions/38088712
复制相似问题