Docker + JHipster +内存使用率上升

时间:2016-06-29 01:10:38

标签: java spring docker docker-compose jhipster

我创建了JHipster项目并试图通过linux机器执行它。所有容器都创建得很好,我可以用#34; docker ps"并查看" docker stats"。

的使用情况

然而,内存不断上升..最终我的笔记本电脑(核心i5,10GB RAM)停止响应并死机!

我在docker_compose.yml上的每个服务定义上尝试使用mem_limit,我可以看到限制器工作于docker stats ...但是内存不断上升,当容器获得> 95%的使用率已经死了......容器停止工作并被移除。所以..这个设置只是阻止我的电脑死...但没有别的。

我也尝试用set JAVA_OPTS设置-xmx和docker_compose.yml中的其他内存参数......但结果是一样的。

注册表,网关,商业微服务和UAA至少需要1.5GB才能启动,其他图像/容器(mysql,elasticsearch等)可以使用512m。但是有4 x 1.5GB和几个512mb消耗了我所有的记忆。 JHipster Registry应该可以使用512mb。我在Heroku上设置了一个512mb的注册表,它就可以了。

我正在运行基本操作系统(基于ubuntu 14.04),64位,内核3.19.0-59-通用,Java 1.8,Docker版本1.11.2构建b9f10c9,我在grub上进行了cgroups configuracion for memory (来自码头安装指南)。这是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

还有一件事......我尝试了这个回购https://github.com/kbastani/spring-cloud-microservice-example中的项目并且有完全相同的问题..内存一直在上升。

我希望你能帮到这个。

谢谢!

1 个答案:

答案 0 :(得分:0)

容器需要更多内存,限制它们可以拥有多少内存并不会改变它。

当内存过高(95%)时,Linux OOM杀手会介入以保护您的系统免受严重的厄运(请参阅OOM Killer

TL; DR 运行更少的容器或获得更多内存。