Docker – 你可以过度分配RAM(tomcat)吗?

从一个新手的angular度来看问题:Docker可以“过度”Ram是否明智,这是一个好主意吗?

这个用例在单个服务器上是多个tomcat,其中tomcat具有处理80%的负载需求的最小值(XMS),但是最大值(XMX)可以处理额外的负载。

10个tomcat,平均XMS为256mb,XMX为896,你可能想要在完整的896 + permgen(64m)+ os的需求(64mb)= 1024MB下分配docker的内存,即使它不会被全部使用时间?

https://docs.docker.com/reference/run/#runtime-constraints-on-cpu-and-memory

如果主机支持交换内存,则-m内存设置可以大于物理RAM

感谢任何反馈,如果有经验的人可以确认(和/或已经这样做!)将不胜感激!

-D

Docker可以超载内存,正如文档中提到的那样。 这样做可能会遇到的问题与在主机而不是容器上运行进程时所遇到的问题没有什么不同。 只要驻留内存占用(RES / RSS)小于主机上的实际RAM,就应该没问题。 虚拟内存占用可能会更大,但实际上并不需要分配(VIRT / VSZ)。

我倾向于根本不configuration交换,因为当它开始使用时,机器实际上变得非常慢(如果使用旋转器),它不太可能恢复。 反之,没有交换,内存分配将会失败并且处理死亡,但是系统不需要被重新启动以被修复。