来自新手的问题:Docker 可以“过度分配”Ram 吗?这是个好主意吗?
用例是单个服务器上的多个 tomcat,其中 tomcat 的最小值 (XMS) 可以处理 80% 的负载需求,但最大值 (XMX) 可以处理额外的负载。
10 台 tomcat,平均 XMS 为 256mb,XMX 为 896,您可能希望在全部 896+permgen(64m)+os 需要 (64mb) = 1024MB 时分配 docker 的 ram,即使它不会一直在用?
https://docs.docker.com/reference/run/#runtime-constraints-on-cpu-and-memory
If the host supports swap memory, then the -m memory setting can be larger than physical RAM
感谢任何反馈,如果有经验的人可以确认(和/或已经这样做了!),我们将不胜感激!
-D
最佳答案
Docker 可以过度使用内存,如文档中所述。这样做时可能遇到的问题与在主机而不是容器上运行进程时遇到的问题没有什么不同。只要常驻内存占用空间 (RES/RSS) 小于主机上的实际 RAM,就应该没问题。虚拟内存占用空间可能大得多,但实际上不需要分配 (VIRT/VSZ)。
我倾向于根本不配置交换,因为当它开始使用时,机器实际上变得非常慢(如果使用微调器)以至于不太可能恢复。相反,如果没有交换,内存分配将失败并且进程死亡,但系统不需要重新启动即可修复。
关于tomcat - Docker - 你能过度分配 ram (tomcat) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24374854/