VMWare Server Guests take a long time to boot

Thanks Dougie…

This is actually quite a common problem on virtual hosts (running VMware Server) with multiple VMs. Basically, as the host is still finishing booting, the VMs start booting automatically (this is so we don’t have to start them manually) which puts a huge amount of load on the disks, processor and memory. This extends the response time for some of the heavier services to start and causes them to timeout (30 or less is usually the default).

This isn’t so much of a problem on ESX server as there are options to stagger the boot of VMs so the host is fully loaded and can dedicate everything to the VMs, unfortunately no option I am aware of existing in VMware Server. So this leaves is with the option of modifying the service timeout period on the VMs themselves, a fairly straightforward change, from a Microsoft KB:

When a service starts, the service communicates to the Service Control Manager how long the service must have to start (the time-out period for the service). If the Service Control Manager does not receive a service started” notice from the service within this time-out period, the Service Control Manager terminates the process that hosts the service. This time-out period is typically less than 30 seconds. If you do not adjust this time-out period, the Service Control Manager ends the process and the attached debugger while you are trying to debug. To adjust this time-out period, follow these steps:
a. In Registry Editor, locate, and then right-click the following registry subkey:
b. Point to New, and then click DWORD Value. In the right pane of Registry Editor, notice that New Value #1 (the name of a new registry entry) is selected for editing.
c. Type ServicesPipeTimeout to replace New Value #1, and then press ENTER.
d. Right-click the ServicesPipeTimeout registry entry that you created in step c, and then click Modify. The Edit DWORD Value dialog box appears.
e. In the Value data text box, type TimeoutPeriod, and then click OK

Note TimeoutPeriod is a placeholder for the value of the time-out period (in milliseconds) that you want to set for the service. For example, if you want to set the time-out period to 24 hours (86400000 milliseconds), type 86400000.

f. Restart the computer. You must restart the computer for Service Control Manager to apply this change.

Powered by www.itgroove.net

Sponsored by Major Change (.com) – The Online Change Register