Accelerate Azure VM start time in Azure Batch pool

Kale, Vaibhav 41 Reputation points
2020-09-01T06:15:52.21+00:00

We are developing a service which is supposed to interact with Azure Batch and create pool of Virtual Machines (i.e."worker nodes"). The Virtual machines will be created from custom image (from a shared image gallery) with some installed applications, but based on Windows 2016/2019 base OS (Refer link for image creation: https://learn.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource ). These VMs will be scaled from 0 to n as per requirement. The size of these VMs is currently A2V2 but may vary.

The Virtual Machine start time that we measured for these VMs is 6 Min+. Are there any tips/steps which can help in reducing the time required to start these "Worker Nodes" in Azure Pool.

I have tried using:

  1. VM Ware OSOT to optimizing the Azure VM before creating Image. Though it has had slight effect (the savings are from 0 sec to 25 secs), it is not very conclusive nor very impressive.
  2. I have also tried using SDelete before generalizing the VM using Sysprep. The image created after using SDelete has not shown any start time improvement.

Research online suggests that VM start time performance is an unresolved issue for Azure, refer : https://feedback.azure.com/forums/216843-virtual-machines/suggestions/5715040-accelerate-vm-startup-time .

Please suggest:

  1. Is there anything that can help improve/accelerate Start time of VMs in Azure Batch pool?
  2. Also, any link/research which explains/guarantees the minimum time a Azure VM will take for starting a Node (and come to idle state), will also help in benchmarking the observations that we have.
  3. Can you please document the factors/variables which causes VM start time to vary from node to node?

Thanks in advance!

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
7,130 questions
Azure Batch
Azure Batch
An Azure service that provides cloud-scale job scheduling and compute management.
302 questions
{count} votes

1 answer

Sort by: Most helpful
  1. prmanhas-MSFT 17,886 Reputation points Microsoft Employee
    2020-09-22T20:03:25.23+00:00

    @Kale, Vaibhav As per response from the backend team improvising VMSS start time is being worked upon and is in pipeline.

    As mentioned in comment above we are doing work to increase the provisioning time for VMSS instances.

    Some general tips on VMSS provisioning times:

    •Store your custom image in a Shared Image Gallery, and create your VMSS using a Shared Image which will move it to a more modern stack

    •Create your VMSS with singlePlacementGroup=false, FDCount=1. That will relax constraints on your VMSS and allow us to allocate and return them as quickly as possible.

    Hope it helps!!!

    Please 'Accept as answer' if it helped, so that it can help others in the community looking for help on similar topics

    0 comments No comments