RAM如何在虚拟机中工作?

瓦西里·卡洛维奇(Vasili Karlovic)委员

我已经用VBox设置了Linux虚拟机,并且主机操作系统是Windows。我想了解RAM如何在虚拟机上运行。

  • 主机是否将来宾使用的RAM分配为一项服务?
  • 或者,RAM是由来宾直接分配的?

简而言之,主机是将访客视为单个应用程序,还是访客系统直接将其需求分配给硬件?我没有学习计算机科学或其他专业,因此我认为该问题如下:

  • 如果我在来宾系统中执行单个计算,并且主机系统将来宾视为单个服务,则该计算将成为该客户当时所产生的众多服务之一,并且我的计算将有一个延迟。
  • 如果来宾直接与RAM连接,则其他服务已在RAM中分配,并且它们会波动,新服务将被更快地分配。
杰米·汉拉汉(Jamie Hanrahan)

第一:RAM的分配始终在主机操作系统的最终控制之下。

除此之外,还取决于。

使用简单的虚拟机管理程序,您只需告诉虚拟机管理程序每个VM可获得多少RAM,虚拟机启动时将从主机系统上的可用RAM中扣除该数量,并且只要虚拟机正在运行,虚拟机管理程序便会“使用”该数量。在VM中运行的OS像往常一样将RAM分配给进程和OS使用。可以在Windows 7中广泛用于运行“ XP模式”的旧Microsoft“虚拟PC”以这种方式工作。VirtualBox也可以。在这两种情况下,如果为VM配置1 GB RAM并启动它,则主机突然会少“可用” RAM 1 GB。它在使用RAM方面通常效率不是很高,但是实现起来很简单。

对于更复杂的虚拟机管理程序,您分配给虚拟机的数量仅仅是一个上限。来宾OS认为有太多的RAM是“总计”,但在幕后,就主机而言,来宾认为的部分甚至大部分RAM可能是虚拟的。Windows在来宾系统中所谓的“免费”或“归零” RAM尤其如此-由于它没有令人感兴趣的内容,因此无需将其存储在任何地方。但是,即使访客认为“正在使用”的RAM也可以在主机中虚拟化,其内容在页面文件或映射文件中。

来宾OS会像往常一样继续处理RAM,但是如果来宾OS引用了一些尚未真正存在的RAM,则虚拟机管理程序可以为来宾分配更多的实际RAM。(换句话说,在guest虚拟机中似乎没有页面错误的内存引用可能会在主机中引起页面错误。)在总可用RAM和配置的限制内,虚拟机管理程序会调整“ in”内存中的RAM数量。来宾OS尝试将其在主机中的页面错误率保持在较低水平。

这通常称为“精简配置”。在虚拟机管理程序中实现起来更加复杂,但是可以更有效地使用主机的RAM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不关闭电源的情况下更改虚拟机中的RAM数量

如何在虚拟机中热插拔启用新的CPU和RAM?

如何在虚拟机中托管网站?

如何在虚拟机中挂载Azure数据磁盘

如何在Azure虚拟机中更改时区?

如何在Azure中列出经典的虚拟机

如何在virtualbox guest虚拟机中安装xorg?

如何在Virtualbox中恢复虚拟机?

如何在Windows 7虚拟机中安装程序?

如何在vmware中的主机和虚拟机之间启用复制粘贴,虚拟机是Ubuntu

只是扩展了磁盘大小-虚拟机现在不可用-如何在虚拟机中扩展?

如何在没有Azure虚拟IP(VIP)地址的Microsoft Azure中创建虚拟机?

如何在现有的虚拟机中创建虚拟监视器

如何在vagrant guest虚拟机中连接到基于名称的虚拟主机?

如何在Powershell Azure中将虚拟机作为工作启动

GetLogicalDrives - 代码在本地工作但不在虚拟机中

使PCI声卡在Parallels Desktop虚拟机中工作

如何在虚拟机中运行的主机中访问Web应用程序

如何在主机中的每个虚拟机中运行 powershell 代码

如何在Windows 7中恢复运行Linux的虚拟机中存储的文件

如何在日志查看器中查看托管虚拟机的JSON日志?

如何在 Azure 免费服务中免费创建虚拟机

如何在Windows中通过Pyomo读取cplex虚拟机配置文件?

在我的192.168机器中,如何在同一机器上找到10.0虚拟机?

如何在Ubuntu 13.04中启动qcow2格式的虚拟机?

如何在kvm中创建没有os的空虚拟机?

如何在Qemu虚拟机中安装Ubuntu Trusty 14.04

如何在具有Linux主机的虚拟机中运行AIX的新版本?

如何在 Azure 中打开虚拟机(经典)上的所有端口