容器与虚拟机之间的内存需求差异

38次阅读
没有评论

问题描述

目前在一个需要大约32GB RAM并且几乎24/7运行的虚拟机上运行一个Java交易系统。与之相关的还有一些需要4GB和8GB内存的引擎。用户正在考虑从虚拟机迁移到容器。
大多数文章都谈到了运行Web应用程序的好处以及容器快速启动的好处,但它们没有讨论重量级应用程序。
对于这个问题,我想知道在比较虚拟机和容器时,运行在其中的进程的内存需求是否需要考虑,或者两者之间没有区别?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

容器与虚拟机之间的内存需求是有差异的。容器只包含应用程序和运行时环境(例如JVM),但应用程序和运行时环境的启动速度与在虚拟机上运行时相同。但是,虚拟机通常需要更长的时间来创建和启动,因为您还需要启动操作系统。因此,这取决于您如何进行比较。
在容器中运行应用程序不会使应用程序的启动速度更快。

方案2

在容器中运行的应用程序与在虚拟机上运行时使用的资源量相同。但是,使用容器更容易管理多个实例,因此您可以考虑这一点。通常,这样做是为了实现更好的可用性和零停机部署。但是,如果您考虑将应用程序扩展到多个实例,则应用程序需要是无状态的。
综上所述,容器与虚拟机之间的内存需求是有差异的,但是在容器中运行的应用程序与在虚拟机上运行时使用的资源量相同。容器的优势在于更快的启动速度和更容易管理多个实例。

正文完