微软优化 Hyper-V 代码,以缩短启动时间

  微软已提交 Hyper-V 更新至 Linux 6.12 内核。其中包含的大多是一些小改动,但确实有助于优化大型 Hyper-V VM 的启动时间。

  • 通过并发执行 hv_synic_init () 优化启动时间
  • 使用帮助程序读取 hv_snp_boot_ap () 中的控制寄存器
  • 在 hv_fcopy_start 中添加内存分配检查

  值得一提的 Hyper-V 优化是通过允许并发执行 hv_synic_init () 函数来优化 VM 启动时间。Microsoft 工程师 Saurabh Sengar 指出,对于具有许多 CPU 的 VM(例如多达 1,780 个 vCPU),由于在 hv_synic_init () 内对每个 CPU 进行顺序初始化,Hyper-V ACPI 初始化函数可能需要数秒才能完成。

  对于 Linux 6.12 及以后的版本,每个 CPU 都会并行执行该函数,从而为现有逻辑带来约 66% 的改进。但从总体上看,对于使用 Hyper-V 的超大型虚拟机来说,这只是节省了一两秒的时间。但是在拥有超大型虚拟机的云计算世界中,几秒钟的 downtime 都可能至关重要,这对于帮助尽可能快地启动或重启虚拟机来说是一个显著的改进。

  更多详情可查看此处