我目前有一台 4770K,搭载三星 850 Evo,运行 Ubuntu 16.04。我使用 vagrant 和 Virtual Box 创建和管理虚拟机。我经常重新创建虚拟机,现在,使用 vagrant 启动一台新机器大约需要 36 秒。我相信我可以提高这个性能,我相信瓶颈是我的驱动器。我正在考虑购买 NVMe 驱动器 - 三星 970 Pro 512 GB 或https://www.wdc.com/products/internal-ssd/wd-black-nvme-ssd.html#WDS500G2X0C。我还需要购买一个新的 CPU/MOBO – CPU 是 AMD 2700X。
我假设并希望这将提高与启动新 VM 相关的性能。我希望 VM 内部的驱动器性能也能得到改善(在 VM 内部解压缩大文件),但这部分并不那么重要。说实话,我不知道预期的行为应该是什么,也不知道我的逻辑是否合理。
我还知道 Virtual Box 有“Oracle VM VirtualBox 扩展包”,它增加了对 USB 2.0 和 USB 3.0 设备、VirtualBox RDP、磁盘加密、NVMe 和 Intel 卡的 PXE 启动的支持。如果使用 NVMe 驱动器有好处,我也愿意购买 VMware 许可证——我知道 vagrant 有单独的插件,我必须购买。
我想知道创建带有 NVMe 驱动器的客户虚拟机(如果我的主机驱动器是 NVMe 驱动器)是否会对启动新虚拟机所需的时间产生任何影响。或者也许我不需要 Virtual Box Extension 包。即使我在主机有 NVMe 驱动器的情况下创建 SATA 硬盘控制器客户虚拟机,我是否应该期待任何差异?
基本上,我想减少启动虚拟机所需的时间,看看是否可行。我认为我的开发效率的瓶颈是驱动器。如果我的理解不正确,请告诉我。
答案1
如果您将整个 NVMe 设备映射到虚拟机,则客户操作系统可能会直接与 NVMe 硬件通信,从而减少延迟。这是否是您的瓶颈以及这是否真的会提高性能很难说。
您可能需要查看 Brendan Gregg 的 USE 诊断协议宣言,以收集信息,做出更明智的决定。