![服务器虚拟化 共享内存](https://linux22.com/image/704937/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%99%9A%E6%8B%9F%E5%8C%96%20%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98.png)
我的朋友和我有一个专用服务器。我们想进行虚拟化,这样他就有自己的 Linux 服务器,我也拥有自己的。我想在这两个虚拟机之间共享未使用的 RAM,这样当有可用 RAM 时,我就可以运行 RAM 占用大的任务。是否可以在两台或多台机器之间共享未使用的 RAM?
提前致谢
答案1
如果我理解正确,您是想问同一台主机上的两个虚拟机是否可以“共享” RAM 资源,而不是为每个虚拟机分配大约一半的物理内存。
在大多数主流虚拟机管理程序上都可以执行类似操作,尽管它可能不会完全按照您的要求工作。该功能通常称为“内存过量使用”或“内存膨胀”。其内部工作原理是,每个客户虚拟机都有一个特殊的“膨胀”驱动程序,该驱动程序向客户操作系统发出信号,告知它正在使用一块内存。驱动程序使用对主机虚拟机管理程序的特殊调用来通知它,虚拟机管理程序可以回收内存供其他客户机使用。
你可以想象一个比喻,即两个客人体内都有一个气球。当你挤压(放气)一个客人体内的气球时,另一个客人体内的气球就会变大(膨胀)。客人可以决定为气球充气提供多少空间。
该方案存在一些问题:
- 气球驱动程序只能回收客户机中未使用的内存,因此共享是协作的。如果一个虚拟机中的应用程序恰好占用了内存,另一个虚拟机就没那么幸运了。
- 并非所有虚拟机管理程序都能自动充气或放气。对于那些可以自动充气或放气的虚拟机管理程序,它可能无法始终按照您的预期或需要充气或放气。
- 当气球无法提供帮助时,内存过量使用的后备方法通常是使用磁盘上的交换空间。如果您最终不得不使用交换空间,那么您可能有麻烦了。性能会变得非常缓慢。
答案2
这就是虚拟化。具体来说,这取决于您的设置和您使用的虚拟化软件类型。虚拟机将使用可用的物理资源。很难给出一个好的答案,因为您没有指定您使用的虚拟化软件类型和设置。