15

我在我的物理机上运行 Ubuntu;和 VirtualBox 在上面运行各种虚拟的。

大多数时候,我都在做“直截了当”的安装。但今天我想变得“聪明”,并检查了 Fedora 或 ubuntu 安装程序将在我的虚拟磁盘上创建的分区。

当然,在使用默认值时,我的一些 GB 虚拟磁盘将用作“交换空间”。

现在我想知道:假设我有足够的物理内存(所以我可以为 VM 分配 6 或 8 GB) - 虚拟机的专用交换空间有什么意义吗?

4

3 回答 3

8

在 ServerFault 得到了回答

TL;DR:使用交换:1. 避免内存不足错误,2. 来宾操作系统更擅长内存管理

忽略人们正在处理操作系统特定原因的事实,我有两个原因说明不使用交换分区/文件运行是个坏主意。

  1. 如果您有 1.5 GB 的 RAM 分配给没有空间文件/分区的 VM,并且它想要使用 1.5 GB + 1 MB,它将报告内存不足错误。有了交换空间,它将能够将数据从活动内存交换到磁盘上。

  2. 来宾操作系统在内存管理方面比主机做得更好。这就是为什么存在诸如内存膨胀之类的技术的原因,因为主机可以对现在不需要的内存做出有根据的猜测,但来宾在更智能的水平上知道(这可以防止操作系统内存被换出,这可能会影响您的性能)。

于 2015-05-27T09:59:13.750 回答
4

交换分区用于在空间不足时释放物理内存。在具有大量内存的现代机器中,这取决于您将运行的应用程序的类型。如果您计划运行诸如视频编辑器、高端游戏或类似的内存密集型程序,那么虚拟内存或交换空间是一种资产。但如果不是这种情况,那么只要你有足够的内存,你就可以安全地避免交换空间。但是有一个后备是安全的。

于 2015-02-05T09:50:49.677 回答
3

这取决于您在主机系统上与虚拟机一起运行的程序,或者您在虚拟机中运行的程序。

软件可以消耗的唯一内存上限是可用的总内存(物理或虚拟)。有很多程序在正常运行时需要大量内存,也有很多情况会导致程序消耗大量内存(例如加载输入文件)。还有很多错误的程序会无意中消耗大量内存。

您通常可以通过检查您运行的程序的要求或建议(例如内存和驱动器空间)来获得一个想法。做不到这一点,试试看。

于 2015-02-05T09:54:18.313 回答