我们正在开发一项服务,该服务应该与 Azure Batch 交互并创建虚拟机池(即“工作节点”)。虚拟机将通过自定义映像(来自共享映像库)创建,其中包含一些已安装的应用程序,但基于 Windows 2016/2019 基本操作系统(请参阅映像创建链接:https://docs.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource)。这些虚拟机将根据需求从 0 扩展到 n。这些虚拟机的大小目前为 A2V2,但可能会有所不同。
我们为这些虚拟机测量的虚拟机启动时间为 6 分钟以上。是否有任何提示/步骤可以帮助减少在 Azure 池中启动这些“工作节点”所需的时间。
我曾尝试使用:
- VM Ware OSOT 在创建映像之前优化 Azure VM。虽然它有轻微的效果(节省了 0 秒到 25 秒),但它并不是很有决定性,也不是很令人印象深刻。
- 在使用 Sysprep 推广虚拟机之前,我也尝试过使用 SDelete。使用 SDelete 后创建的映像没有显示任何启动时间改进。
在线研究表明,VM 启动时间性能是 Azure 尚未解决的问题,请参阅:https://feedback.azure.com/forums/216843-virtual-machines/suggestions/5715040-accelerate-vm-startup-time。
请建议有什么方法可以帮助缩短 Azure Batch 池中虚拟机的启动时间?此外,任何解释/保证 Azure VM 启动所需的最短时间的链接/研究也会有所帮助,这样我们就不会花时间不必要地过度优化它。
提前致谢!
答案1
批处理节点的启动时间受限于虚拟机启动所需的时间,并且您无法对此进行大量操作。没有记录的启动时间 SLA,但一般经验表明启动时间在 4-8 分钟之间。
我发现启动时间有所改善的一个方面是使用临时磁盘。如果您不需要保留磁盘上的数据,那么使用它可以缩短一些启动时间,但是我发现如果这是一个令人担心的问题的话,它可以稍微增加关机时间。