Kubernetes豆荚在较大的机器上使用太多内存
我依然用kubernetes在我的脚下。 我们有一个基于spring-boot的应用程序,在AWS上运行Kubernetes 1.4.2上有17个微服务。 当我在4个m3.medium worker的AWS集群上运行这个应用程序时,我的容器都处于200-300MB的内存使用范围内(有一些例外)。 对于生产,我在4位m4工作人员上安装了相同的一组服务,并立即将我的内存移动到相同容器上的700-1000MB的内存中,并具有几乎相同的规格。 我试图找出这里的违规派对–Springboot,Docker或者Kubernetes。
有没有人见过这样的行为?
我知道我可以使用Kubernetes的限制来限制资源,但是我真的不想这样做,因为我知道应用程序在小型机器上可以正常运行,占用的空间也更小。 只是寻求一些build议,问题可能在哪里。
编辑:多一块或相关的信息。 我使用CoreOS稳定版1298.6.0作为主机操作系统映像。
在我看来,问题是你的容器内的进程看到可用的RAM作为可用的RAM。
如果使用更大的实例,JVM将尝试使用更多的RAM。 你应该尝试用-Xmx300m限制你的java虚拟机堆(用你的应用程序需要调整这个值)。 我build议你阅读这篇文章,以简单和干净的方式解释。
- 在Docker容器中访问主机上的MySQL数据库
- docker-compose环境将覆盖jar中的variables,docker环境variables和jar中的variables如何映射?
- 我如何使JHipster应用程序REST服务在不同的docker集装箱上运行?
- 尤里卡客户在docker不与尤里卡服务器连接
- Docker组合 – 无法在任何已知的服务器上执行请求
- 如何将创build的图像链接到docker-compose指定的命名卷?
- 如何使用Dockerconfiguration使用redis的spring引导web应用程序
- 在使用docker-compose时,应用程序不能注册为eureka
- Spring Boot和Redis容器之间的通信